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