ループして使用できるようにしました。"Ack"を送信しTCP/IPの接続を閉じます。表示して、TCP/IPの接続を閉じます。受信待ちなどにすると思いますが、今回は通信方法をメインに簡略化したためその処理は実装していません。使用中のリソースをすべてクリーンアップします。必要なデザイナ変数です。使用中のリソースをすべてクリーンアップします。必要なデザイナ変数です。ついて作成してみました。説明を始めると長くなるためここでは省略させていただければと思います。1つしか取得できませでした。Semaphoreは、指定回数分同じスレッドで取得できます。Semaphore生成(max=2)、button2[ThreadStart]押しで、スレッド起動し、Semaphoreを3つ取得。3つめ取得で、解放待ちになります。Semaphore]押しで、1つ解放されるため3つめ所得で待ちが解放されて、スレッドの処理が進みます。Semaphoreを2つ取得していますので2つ解放してスレッド終了します。button2から同じ動作を再開できます。Semaphore]押して、スレッド閉じてからExitボタンが押せるようにしてあります。変更する必要があります。相互に利用できなくなります。使用中のリソースをすべてクリーンアップします。必要なデザイナ変数です。ThreadProcessing(void){MessageBox::Show("Threadで資源2個取得します。OK押し後、Relaseボタンをおしてください。2個取得(Createで2個分枠とっているので、ここまで取得できる。)MessageBox::Show("Threadで、また1つ資源取得しました。1つ解放されるとここへ来れる。2個目を取得しているので解放。これで取得すう0となる。VC++環境でのお話しです。ついて作成してみました。説明を始めると長くなるためここでは省略させていただければと思います。アプリケーション本体で、Mutexを生成、取得しスレッドを起動、スレッド側でも取得実行。(すでに取得されているため待ち)Releaseボタン(button2)を押すと、Mutex解放するので、スレッド側で取得でき、MessageBoxを表示するというものです。2度待つことはできません。自スレッドで、Mutex取得後、もう一度取得待ちを呼び出してもすぐ取得となりプログラムが先へ進んでしまいます。数を指定して実装すれば実現できると思いますがそれは、また別の機会にと思います。Mutex取得待ちMessageBox::Show("Threadで資源取得しました。VC++環境でのお話しです。)別アプリケーション実行終了待ち2014-05-06前回は別アプリケーション起動をまとめてみました。^e){MessageBox::Show("Notepad終了しました。VC++環境でのお話しです。)別アプリケーション実行2014-03-14今回は、別のアプリケーションを起動する方法です。以下例は、メモ帳を引数で開くファイル指定(C:\TEMP\Test.txt")で起動します。メモ帳が終了するのを待つ例です。exe修了を待つことができます。VC++環境でのお話しです。