我想通过While
进行冻结操作:
do
{
ManualResetEvent.Reset(); // Here i want to wait
// Here i am doing my stuff...
}
while (some boolean value);
}
我的ManualResetEvent
:
private static ManualResetEvent _manualResetEvent;
public static ManualResetEvent ManualResetEvent
{
get { return _manualResetEvent; }
set { _manualResetEvent = value; }
}
ManualResetEvent = new ManualResetEvent(false);
在我的代码中通过Button
的某些方面,我只想冻结我的操作:
private void btnPause_Click(object sender, RoutedEventArgs e)
{
ManualResetEvent.WaitOne();
}
这是正确的方法吗?
答案 0 :(得分:2)
你有两个功能倒退。您要等待的循环需要使用.WaitOne()
。此外,如果您希望它在开始时运行,则需要将重置事件初始化为true
初始化
private static ManualResetEvent _manualResetEvent;
public static ManualResetEvent ManualResetEvent
{
get { return _manualResetEvent; }
set { _manualResetEvent = value; }
}
ManualResetEvent = new ManualResetEvent(true); //Set it to true to let it run at the start.
环
do
{
ManualResetEvent.WaitOne(); // Here i want to wait
// Here i am doing my stuff...
}
while (some boolean value);
}
别处
private void btnPause_Click(object sender, RoutedEventArgs e)
{
ManualResetEvent.Reset();
}
private void btnUnPause_Click(object sender, RoutedEventArgs e)
{
ManualResetEvent.Set();
}