我正在使用Thread
类来创建另一个执行线程。像这样:
/// <summary>
/// This method is executed in parallel thread (NON-static!)
/// </summary>
private void SomeMethod()
{
// some actions
}
var thread = new Thread(SomeMethod);
thread.Start();
但现在我需要能够在运行时取消 SomeMethod
的执行。所以我尝试使用 Task
类及其取消机制。
当我尝试将 SomeMethod
作为参数传递到 Task 构造函数时,如下所示
private Task _task = new Task(SomeMethod);
我有这个编译错误:
无法在静态上下文中访问非静态方法“SomeMethod”
我无法将 SomeMethod
设为静态,由于多种原因这是不可能的。
据我所知, Task
类超越了 Thread
类,所以我认为这是非常奇怪的限制。
是否可以使用非静态方法作为 Task
的源?
最佳答案
使用构造函数:
private Task _task;
public YourClassName()
{
this._task = new Task(this.SomeMethod);
}
关于c# - 使用非静态方法作为任务的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25742251/