private void btntest_click(object sender, eventargs e)}
private void btntest_click(object sender, eventargs e)private void dowork()
}
嗯?出現異常了是吧,沒錯上面的**執行後後會出現「執行緒間操作無效: 從不是建立控制項「label1」的執行緒訪問它。」的異常。關於什麼原因造成的,大家可以google一下。不過上面**在vs03中貌似可以正常執行。將**改成下面這樣就可以正常執行了:
private void btntest_click(object sender, eventargs e)private void dowork()
}private void changelabel(string i)
如果嫌多寫乙個changelabel方法費事,可以寫成匿名方法的形式,如下:
private void btntest_click(object sender, eventargs e)private void dowork()
)); }
}
同樣可以使用匿名方法的方式將dowork方法也去掉:
private void btntest_click(object sender, eventargs e))); }
}));
thread.start();
}
如果想傳引數到dowork方法中,那麼就不能使用threadstart類了,應該使用parameterizedthreadstart類,如下:
private void btntest_click(object sender, eventargs e)private void dowork(object name)
)); }
}
同樣我們也可以使用執行緒池的方式來實現
private void btntest_click(object sender, eventargs e)private void dowork(object o)
)); }
}
使用匿名方法的方式:
private void btntest_click(object sender, eventargs e))); }
}));
}
平時做windows應用程式很少,對多執行緒理解也不是特別深入,有什麼不對的地方往大家指正。
[**]
執行緒池的乙個例子
執行緒池的乙個例子 threadpool.h threadpool.h inte ce for the cthreadpool class.if defined afx threadpool h e4160016 0fd0 4e25 a708 a3240945c9b9 included define...
關於陣列的乙個例子
慶祝活動,現在a b c三條 要同時開始鳴放禮炮各21響。已知a艦每隔5秒鳴放一次,b艦每隔6秒鳴放一次,c艦每隔7秒鳴放一次。假設炮手對時間掌握的都很準,那麼總共聽到多少聲炮響?對於這個問題,可以使用陣列來解決。首先使用三個陣列分別存放a,b,c艦21響禮炮的鳴放時間點,這裡可以使用乙個for迴圈...
關於類的繼承的乙個例子
學習物件導向,繼承是乙個不得不說的問題。從c 開始,我們就學習繼承和介面。呵呵,昨天收到一間叫網龍公司的面試email,先發個試題來做的email面試還是第一次見識。可能偶面試經驗少吧 不超過十次 面試題目裡面有乙個問題很適合用來作為繼承的講解例子。因為這個例子實在太美妙了,忍不住做了一下,並試著分...