以下代码:
var ui = TaskScheduler.FromCurrentSynchronizationContext();
Task.Factory.StartNew(() => { listBox1.Items.Add("Starting to crawl " + srMainSiteURL + "..."); } , ui);
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
Delegate 'System.Action<object>' does not take 0 arguments
在查看其他线程后,我无法确定也无法理解错误的原因.请指教.
因为你确实使用过
public Task StartNew(Action<object> action, object state)
Run Code Online (Sandbox Code Playgroud)
我觉得你想用
public Task StartNew(Action action, CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskScheduler scheduler)
Run Code Online (Sandbox Code Playgroud)
所以你的例子将成为:
Task.Factory.StartNew(() => { listBox1.Items.Add("Starting to crawl " + srMainSiteURL + "..."); }, CancellationToken.None, TaskCreationOptions.None, ui);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10035 次 |
| 最近记录: |