2017-12-28 21 views
0

私は紺碧の雲に私のWebロールアプリケーションを展開しています。別のスレッドで実行する必要がある小さなコードブロックがあります。私のコードブロックは次の通りです:Azureクラウドサービス:System.Threading.Threadが機能しない

private static bool Method1() 
{ 
    ... 
    ... 
    System.Threading.Thread thread = new System.Threading.Thread(() => Method2()); 
    thread.Start(); 
    ... 
    ... 
} 

private static void Method2() 
{ 
    .... 
    .... 
} 

私はローカルシステムでこのコードをテストしました。それは正常に動作しています。 何が起こっているかを正確に確認するために、ログファイルに書き込むコードを配置しました。 Azureクラウドサービスでは、Method1()はエラーなしで実行されます。スレッドの定義と開始の前後にコードブロックが正常に実行されました。 Method2()は決して実行されません。

空のクラウドサービスでスレッディングが許可されていませんか?または、空のクラウドサービスでスレッド化の実装が異なりますか?

ありがとうございました...

+0

CSではスレッディングが許可されています。これについてはhttps://stackoverflow.com/questions/5041153/how-to-create-multiple-threads-in-windows-azure-worker-roleを参照してください。 – Ashok

答えて

1

あなたの説明からわかりにくいです。スレッディングは許可されます。 タイミングをとすると、はマシンとAzure VMの間で異なることを考慮する必要があります。

スレッドが実行をスケジュールされる前にプロセスの終了が考えられます - アプリケーションを終了させる例外またはメインスレッドが終了します。

関連する問題