4

Windows 8ストアアプリはスレッドをサポートしなくなりました:

クラスライブラリにスレッドを作成します。

protected static Thread m_thread = null;

次に、関数の1つで:

m_thread = new Thread(new ParameterizedThreadStart(RunDetection));
m_thread.Start(Something);

また、関数を中止する必要があります。

m_thread.Abort();

WIN8ストアアプリでこれを行うにはどうすればよいですか?

4

2 に答える 2

10

スレッドプールでスレッドプロシージャを実行できます。

スレッドを中止することは、プロセス全体をハングさせる可能性があるため、実行可能なオプションではありませんでした(ロックの放棄、グローバル状態の不整合)。

于 2013-01-25T02:01:53.520 に答える
0

通常、スレッドを手動で作成することは悪い習慣です。利点を得るには、マルチスレッドを本当に深く理解する必要があります。ThreadPoolの使用を検討してください:

ThreadPool.QueueUserWorkItem(_ => { RunDetection(); });

また、可能な限り非同期メソッドを使用してください。つまりSomeActionAsyncBeginSomeActionなど。クラスが非同期メソッドを実装していない場合は、ThreadPool同期メソッドの実行に使用します。

于 2013-01-25T02:12:02.203 に答える