[英]Please explain this C# code snippet
我看到人們寫這樣的代碼
_Worker = new BackgroundWorker();
_Worker.DoWork += (sender, e) => e.Result = ((Func<string>)e.Argument)();
人們為什么不使用e.Result
分配。 下面沒有使用此分配的代碼。 但! 他們在下面的代碼中編寫了使用RunWorkerCompleted
事件的地方。 上升時, RunWorkerCompleted
事件是否自動使用e
(恰好該e
高於我分配的e
)?
你是對的。 可以在RunWorkerCompleted
事件中使用e.result。 因為DoWork在自己的線程中運行,所以可以將結果重用到主線程中。 在這里您可以閱讀更多有關它的信息。 請注意,backgroundworker有點老套了,如果您對現代C#多線程用途感興趣(> =。Net 3.5),請閱讀有關任務庫的信息。
小例子:
_Worker = new BackgroundWorker();
_Worker.DoWork += (sender, e) => e.Result = ((Func<string>)e.Argument)();
_Worker.RunWorkerCompleted += (sender,e) => textbox.Text = e.Result.ToString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.