此方法引发错误:An attempt was made to access the object from an invalid thread.
如果我被遣散了Task.Delay
,那就行了。
但是我需要异步方法才能工作。
public async Task<int> Test() {
await Task.Delay( 100 );
return 0;
}
答案 0 :(得分:1)
如果根据您的评论,您不需要将对象绑定到线程,而是需要确保在任何给定时刻仅一个线程可以访问该对象,则可以考虑使用Actor线程模型( https://doc.postsharp.net/actor。
另一种可能适合您的线程模型是同步(https://doc.postsharp.net/synchronized),它基本上是互斥锁。
答案 1 :(得分:0)
如果您需要async
个线程仿射类型,则只能从单线程上下文(例如,UI上下文或AsyncContext
)中调用它们。
但是,在线程仿射类型上需要async
极为罕见。我会重新考虑线程亲和性要求。