簡體   English   中英

請解釋此C#代碼段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM