0

プロジェクトをコンパクトフレームワークに移植する必要があります。そしてに変換することはできません

ThreadPool.RegisterWaitForSingleObject(WaitHandle、WaitOrTimerCallback、object、int、bool)

C#でのThreadPool.RegisterWaitForSingleObjectの代替方法は何でしょうか

lock (this.RegLock)
{
    if (!this.WaitFlag)
    {
        this.mre.Reset();
        if (this.handle != null)
        {
            this.handle.Unregister(null);
        }
      this.handle = ThreadPool.RegisterWaitForSingleObject(this.mre, this.WOTcb, null, this.Interval, true);
    }
    else
    {
        this.StartFlag = true;
        if (this.Interval < this.timeout)
        {
            this.timeout = this.Interval;
        }
    }
}
4

1 に答える 1

2

独自のスレッドを作成して、そこでハンドルを待つことができます。

void RegisterWaitForSingleObject(WaitHandle waitHandle, WaitOrTimerCallback callback, object state, int timeout)
{
    var thread = new Thread((ThreadStart)
        delegate()
        {
            if (waitHandle.WaitOne(timeout, false))
            {
                callback(state, false);
            }
        });

    thread.IsBackground = true;
    thread.Start();
}
于 2009-11-09T13:18:24.400 に答える