close
繼上一篇:[程式][WinForm][C#] backgroundWorker執行緒 如何修改WinForm主執行緒上控制元件的值?
使用 System.Windows.Forms.MethodInvoker 跨執行緒 修改主執行緒的值;
但「public delegate void MethodInvoker();」不能傳參數進去。
找了許久,統整出以下可運行code的結論:
namespace YourProjName { public partial class YourFormName { delegate void DelegateMethod1( string strVal ); DelegateMethod1 Write_SysMsgTo_msgTextBox = null; public YourFormName() { // ... Write_SysMsgTo_msgTextBox = new DelegateMethod1( delegate ( string strVal ) { massage_textBox.Text = strVal ; } ); } // ... private void backgroundWorker1_DoWork( object sender, DoWorkEventArgs e ) { this.Invoke( Write_SysMsgTo_msgTextBox, "message text" ); } } }
參考:[轉載]C# Invoke的用法 @ 我的程式人生之心路歷程 :: 隨意窩 Xuite日誌
Stack Overflow
Blog
MSDN
...
(多到不可考)
文章標籤
全站熱搜
留言列表