【问题标题】:thread synchronization in windows store apps (windows 8.1)Windows 商店应用程序中的线程同步(Windows 8.1)
【发布时间】:2013-09-02 17:00:36
【问题描述】:

我想通过 AutoResetEvent 同步两个线程...但是,Windows 8.1 商店应用程序中不再存在 resetevents。有谁知道除了 AutoResetEvents 我应该使用什么? 我的代码是这样的:

线程 1:

Void Add(float data)
{
    list.add(data);
    updateResetEvent.Set();
}

线程 2:

void Update()
{
     while(updateResetEvent.WaitOn())
     {
          render();
     }
}

【问题讨论】:

  • 添加updateresetevent变量的定义。
  • 谢谢,我知道,但这不是我的完整代码,这是一个关于我想用我的 AutoResetEvent 对象做什么的简单代码。我的问题是我找不到 AutoResetEvent calss 并解决了问题。我有一个错误,我试图在 c# 中使用 Windows.System.Threading 而不是 System.Threading,但现在我需要在 c++ 商店应用程序中使用 AutoResetEvent 的等效项。我没找到,你知道这是什么吗?

标签: c# multithreading windows-8 synchronization windows-store-apps


【解决方案1】:

AutoResetEvent确实存在于 Windows 8.1 应用商店应用程序中。事实上,我能够在 VS 2013(预览版)中创建一个使用它的测试应用程序。

我所做的只是添加以下行:

using System.Threading;

然后我可以访问这些同步类:

AutoResetEvent
ManualResetEvent
ManualResetEventSlim
Monitor
Mutex
ReaderWriterLockSlim
Semaphore

【讨论】:

  • 哦,对不起,我想我是在尝试使用 Windows.System.Threading 而不是 System.Threading 但是你知道 C++ 商店应用程序中是否有 AutoResetEvent 的等价物?我在 C++ 中找不到 System::Threading。谢谢
  • @AMinG - 我不熟悉 C++ 方面的事情。我确实查看了文档,但找不到 AutoResetEvent 的任何 C++ 等效项。您可能必须使用 Win 32 API 调用。有关这些调用,请参阅以下链接中的“线程和同步”部分:Win32 and COM for Windows Store apps
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-21
  • 2016-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多