2
说我想调用一个异步调用,并且如果调用已经在运行,请不要执行任何操作。使用.NET的反应式扩展而不是以下'运行如果未运行'模式
在普通C#我可能会写以下(一会儿忽视线程安全问题)
private bool aysncHappening = false;
private DoWorkInBgThread()
{
if(asyncHappening)
{
return;
}
asyncHappening = true;
RunMeOnABackgroundThread +=()=>
{
try
{
someWorkHere;
}
finally
{
asyncHappening = false;
}
};
}
我怎样才能达到同样的,Execute if Not already running
,其中Rx?
感谢您的解释。所以Rx不一定是以不同的方式处理异步调用的方式吗? – Alan
哦,嘿斯科特!我怎么知道我会在Rx的问题中找到你... – Domenic
@Alan - 这是,但你只要求一个非常特定形式的异步调用 –