我有问题的理解Mutex类,以及如何正确地使用它在WP8应用。 我正在试图做的是只允许一个ScheduledAgent或读/写一次一个文件存储的应用程序。 我试过,没有运气这各种方式。 任何帮助,将不胜感激。
ScheduledAgent代码:
下面代码中的错误,当我调用ReleaseMutex()。 新的mutex( 真 ,“FlightPathData”):当我创建互斥对象,像这样修复此问题。 但我永远不能得到WaitOne的锁和挂起()
错误
对象同步方法是从代码不同步块调用。
码
readonly Mutex mutex = new Mutex(false, "FlightPathData");
protected async override void OnInvoke(ScheduledTask task)
{
List<METAR> savedMetars = null;
var facility = ....;
bool mutexAcquired = mutex.WaitOne();
try
{
if (mutexAcquired)
{
savedMetars = await Data.LoadMetarsAsync(facility.Identifier);
//Thread.Sleep(15000);
}
}
finally
{
if (mutexAcquired)
{
mutex.ReleaseMutex();
}
}
NotifyComplete();
}
ViewModelCode(工程罚款,直到ScheduledAgent ReleaseMutex()失败)
static readonly Mutex mutex = new Mutex(true, "FlightPathData");
...
mutex.WaitOne();
var savedMetars = await Data.LoadMetarsAsync(this.Facility.Identifier);
mutex.ReleaseMutex();