これは私が達成しようとしているものです。C#でWaitHandlesを使用したスレッド待機
私はログインクラスを持っています。ユーザーが認証されると、ログイン後の操作がスレッドで実行されます。ユーザーはホームページにアクセスします。
ここから私は別の機能に行きます。たとえばFindProductクラスです。私はログインスレッドのポストログイン操作が完了しているかどうか確認する必要があります。ログイン後の操作が完了した場合にのみ、私はその機能を入力することができます。
PerformLoginAsyncThreadとOnClickFindProductに待機ハンドルを配置する必要がありますか?
Class Login
{
public bool Login(Userinfo)
{
// do tasks like authenticate
if(authenticationValid)
{
PerformLoginAsyncThread(UserInfo)
//continue to homepage
}
}
}
Class HomePage
{
public void OnClickFindProduct
{
if(finishedPostLoginThread)
// proceed to Find Product page
else
{
//If taking more than 8 seconds, throw message and exit app
}
}
}
私たちはこれに答えるために[mcve]を提供する必要があります。 – Enigmativity
ホームログインページが読み込まれ、ポストログインコールが返ったときにのみ 'FindProduct'を有効にすると、ポストログイン操作を' Async-Await'呼び出しとして行うことができます。あなたのシステムに関する詳細を提供します。私はASP.Net MVCが 'Async'呼び出しを行うことができると仮定しています。この場合WaitHandlesを使用するとデッドロックにつながります。 –
@MrinalKamboj問題は、私はC#2.0を使用しています。 2.0を必要とするレガシーシステムがたくさんあるので、私はアップグレードする選択肢がありません。私はそれが非同期であるかどうか疑いがあります。 問題は、私がスレッディングコンセプトに慣れていないということです。 :| – alfah