LOGO

sponsor.jpg

   ホーム      
 | 
  
   イベント      
 | 
  
   コラム      
 | 
  
   連載      
 | 
  
   フォーラム      
 | 
  
   VSUG      
 | 
  
   スタッフ日記      
 | 
  
   VSUG キャスト   
会員サービス
メンバー ログイン
新規会員登録はこちら
MENU
ホーム
イベント
VSUG アカデミー
VSUG Day
その他のイベント
コラム
連載
基本
LINQ
リッチクライアント
ASP.NET
フォーラム
初心者フォーラム
Visual Studio
.NET 開発
プラットフォーム運用
フリートーク・お知らせ
フォーラムの利用案内
VSUG
VSUGとは
フォーラムリーダー紹介
ガジェット
スタッフ日記
VSUG キャスト
第 1 回 近藤 和彦 氏
第 2 回 長沢 智治 氏
フォーラムグループ
初心者フォーラム
初心者なんでも相談室
Visual Studio
Visual Studio 2005
Visual Studio 旧環境
.NET 開発
Visual Basic
Visual C#
Visual C++/CLI その他
Web アプリケーション
リッチクライアント・UI コントロール
データベース・データアクセス
モバイル・スマートクライアント
.NET Framework
開発プロセス
マイグレーション・COM 相互運用
Office 開発・VSTO
Web ホスティングアプリケーション
ライティング・セキュアコード
プラットフォーム運用
運用管理
フリートーク・お知らせ
談話室
VSUGからのお知らせ
フォーラムの利用案内
インフォメーション
会員規約
会員登録
プライバシーポリシー
リンクポリシー
著作権について
スポンサーについて
お問い合わせ
オンライン状態
オンライン状況 オンライン状態:
未登録ユーザー 未登録ユーザー: 1413
登録ユーザー 登録ユーザー: 0
計 計: 1413

オンライン中のユーザー オンライン中のユーザー:

 
  VSUG フォーラム  初心者フォーラム  初心者なんでも相談室  2つのスレッドから、1つのストリングに書き込みしたとき、片側が抜けるときがある。
前へ 前へ
 
次へ 次へ
新しい投稿 2009/11/23 11:26
ユーザーはオフラインです。 うるし
49件の投稿
ランキングデータがありません


2つのスレッドから、1つのストリングに書き込みしたとき、片側が抜けるときがある。 
言語:C# / Ver:2008 / プラットフォーム:Windows Vista

 

お世話になります。

アプリ中で、スレッド起動している処理が2つあります。

2つとも、通信用の受信スレッドなのですが、受信した場合、共通のストリングに

ログを記録するようにスレッド内に記述しています。

どうも、受信スレッド2で、ストリングに格納している最中に、受信スレッド1で受信があった

場合やその逆の場合、どちらかが保存されないようになるのですが、

良い解決方法はないでしょうか?

共通の書き込み部をデリゲードして呼び出すようにすれば、いいのでしょうか?

もしくは、共通はあきらめて、書き込みストリングを分ければいい??

宜しくご教示お願いします。

 

 
新しい投稿 2009/11/23 12:14
ユーザーはオフラインです。 Hongliang
109件の投稿
dummy
10位


Re: 2つのスレッドから、1つのストリングに書き込みしたとき、片側が抜けるときがある。 

ストリングって、System.String、C# キーワードでの string  のことでいいんでしょうか? string は追記不可なのでそもそもログの書き出し先として不適当だと思うのですが。
それとも Queue<string> みたいな string のコレクションに追加していってるってことでしょうか?

一般論として、複数のスレッドが同一の資源を扱う場合、ロックを行い、一つのスレッドがその資源を扱っている間は他のスレッドを待機させておく形を取ります。
最も簡易なのが lock ステートメントを使うことでしょう。

 
新しい投稿 2009/11/23 13:40
ユーザーはオフラインです。 うるし
49件の投稿
ランキングデータがありません


Re: 2つのスレッドから、1つのストリングに書き込みしたとき、片側が抜けるときがある。 

 

返信ありがとうございます。

ストリングというのは、適当なストリング変数のことを意味します。

lockステートメントのこと調べてみます。

 
新しい投稿 2010/01/02 21:30
ユーザーはオフラインです。 handcraft
13件の投稿
ランキングデータがありません


Re: 2つのスレッドから、1つのストリングに書き込みしたとき、片側が抜けるときがある。 

うるしさんの用件にあっているかわかりませんが、テキストファイルにログ文字列を出力するだけなら、TextWriterのSynchronized メソッドで同期書き込みをサポートしたライタを使用できます。

TextWriter.Synchronized メソッド
http://msdn.microsoft.com/ja-jp/library/system.io.textwriter.synchronized(VS.80).aspx


handcraftの備忘録
 
 1/1ページ
前へ 前へ
 
次へ 次へ
  VSUG フォーラム  初心者フォーラム  初心者なんでも相談室  2つのスレッドから、1つのストリングに書き込みしたとき、片側が抜けるときがある。
ログイン | © 2005-2008 Visual Studio User Group. All rights reserved. 著作権について | プライバシーポリシー | リンクポリシー | お問合せ