我如何给任务一个属性?
How do I give a task a property?
我将我的任务保存在一个列表中,现在我想遍历它并找出哪些任务已设置 "IsSpecial=true"。
但是我找不到任何方法来在任务 上实际创建 属性 也可以通过任务的操作 .
进行修改
class MyOwnTask: Task
{
public bool IsSpecial= false;
}
new MyOwnTask(() => {
this.IsSpecial = true; // "cannot use 'this' in static member"
});
传递一个对象状态也不起作用,因为我无法查询它,所以我没有想法......用线程做这个很容易,所以我不知道为什么会这样无法完成任务?
用于 Task
操作的匿名方法使用声明匿名方法的代码的上下文,而不是 MyOwnTask
class 的上下文。但这并不能阻止您访问 MyOwnTask
的成员;您只需要使用正确的对象引用即可。
例如,这很好用:
MyOwnTask t = null;
t = new MyOwnTask(() => {
t.IsSpecial = true;
});
这里引入了局部变量t
,通过匿名方法捕获,可以用来访问IsSpecial
字段
我将我的任务保存在一个列表中,现在我想遍历它并找出哪些任务已设置 "IsSpecial=true"。 但是我找不到任何方法来在任务 上实际创建 属性 也可以通过任务的操作 .
进行修改class MyOwnTask: Task
{
public bool IsSpecial= false;
}
new MyOwnTask(() => {
this.IsSpecial = true; // "cannot use 'this' in static member"
});
传递一个对象状态也不起作用,因为我无法查询它,所以我没有想法......用线程做这个很容易,所以我不知道为什么会这样无法完成任务?
用于 Task
操作的匿名方法使用声明匿名方法的代码的上下文,而不是 MyOwnTask
class 的上下文。但这并不能阻止您访问 MyOwnTask
的成员;您只需要使用正确的对象引用即可。
例如,这很好用:
MyOwnTask t = null;
t = new MyOwnTask(() => {
t.IsSpecial = true;
});
这里引入了局部变量t
,通过匿名方法捕获,可以用来访问IsSpecial
字段