我该如何解决这个错误? - 委托'System.Action <object>'不带0个参数

Mon*_*RPG 6 c# task

以下代码:

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

在查看其他线程后,我无法确定也无法理解错误的原因.请指教.

Alo*_*aus 7

因为你确实使用过

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)