關於多執行緒的乙個例子(UI實時顯示)

2022-02-22 07:49:38 字數 1395 閱讀 7041

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面試還是第一次見識。可能偶面試經驗少吧 不超過十次 面試題目裡面有乙個問題很適合用來作為繼承的講解例子。因為這個例子實在太美妙了,忍不住做了一下,並試著分...