问题描述
这里是一个简单的测试 AsyncCodeActivity 的例子,它等待 30 秒,然后设置一个输出变量。此示例使用 Nito.AsyncEx.Interop 中的 ApmAsyncFactory 图书馆。执行此操作时,它等待 30 秒,然后出现以下错误:
一个ActivityContext只能在其作用域内访问 它被传入的函数。
namespace RequesterNetFrameworkLib
{
public class RequesterNetLib : AsyncTaskCodeActivity
{
[Category("Output")]
public OutArgument<string> Result { get; set; }
protected override async Task ExecuteAsync(AsyncCodeActivityContext context)
{
await Task.Delay(TimeSpan.FromSeconds(30));
Result.Set(context,"Hello");
}
}
public abstract class AsyncTaskCodeActivity : AsyncCodeActivity
{
protected sealed override IAsyncResult BeginExecute(AsyncCodeActivityContext context,AsyncCallback callback,object state)
{
var task = ExecuteAsync(context);
return ApmAsyncFactory.ToBegin(task,callback,state);
}
protected sealed override void EndExecute(AsyncCodeActivityContext context,IAsyncResult result)
{
ApmAsyncFactory.ToEnd(result);
}
protected abstract Task ExecuteAsync(AsyncCodeActivityContext context);
}
我认为它无法保留上下文,我该如何克服?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)