- 1 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:26:16 ]
- マルチスレッドプログラミングについて語るスレ
■前スレ マルチスレッドプログラミング相談室 その6 ttp://pc11.2ch.net/test/read.cgi/tech/1187008532/ ■過去スレ その1 ttp://pc3.2ch.net/tech/kako/997/997345868.html その2 ttp://pc5.2ch.net/test/read.cgi/tech/1037636153/ その3 ttp://pc8.2ch.net/test/read.cgi/tech/1098268137/ その4 ttp://pc8.2ch.net/test/read.cgi/tech/1130984585/ その5 ttp://pc11.2ch.net/test/read.cgi/tech/1157814833/ OS・言語・環境は問わないが、それゆえ明記すべし。 テンプレ 【OS】 【言語】 【実行環境】 【その他突起する事項】
- 210 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 16:46:25 ]
- test
- 211 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:47:00 ]
- >>201
INFINITE = 0xFFFFFFFF = (DWORD)-1
- 212 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 21:46:58 ]
- >>211
あーそうなんだー
- 213 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:26:53 ]
- P2Pや分散メモリに適した高速
ロックってどんなのがあるのですか?
- 214 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:43:43 ]
- とりあえず知ってる言葉を並べてみました。
- 215 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 07:57:29 ]
- >>213
高速なパッセージならやっぱ3大ギタリスト、とくにベックじゃね? ルカサーも捨てがたいが 若いのは知らん
- 216 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 11:30:25 ]
- やっぱりクリティカルなセクションをアトミックに相互排他する場合
レスポンスタイムが長いメモリをダイレクトにアクセスするのは非効率だから トランザクショナルメモリみたいな遅延する仕組みがマストニードじゃないですかね
- 217 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 13:11:00 ]
- 日本語でおk
- 218 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 13:27:51 ]
- やっぱり際どい領域を原子的に相互排他する場合
反応時間が長い記憶装置を直接読み書きするのは非効率だから トランザクショナルメモリみたいな遅延する仕組みがどうしても必要じゃないですかね トランザクショナルメモリだけはどうにもならんかった。
- 219 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 13:37:44 ]
- 「処理単位記憶装置」かな?
- 220 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 14:44:45 ]
- 都覧公国量産型六番書鳴記憶
- 221 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:55:12 ]
- ザクメモリってどうやってつくるの?
アルゴリズム全然解らん
- 222 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:45:47 ]
- 弱そうなメモリだな
- 223 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:51:07 ]
- トラングフショナルメモリ
- 224 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:51:07 ]
- トランザクショナルメモリって
どんなアルゴリズムなのですかね? 何処探してもみつからない
- 225 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:02:31 ]
- ロックフリーあたりで調べればいいと思う
でもコストが大きい気がするのでリードライトロック程度で十分かと
- 226 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:14:10 ]
- リードライトロックの中にもフェアかフェアじゃないかで変わるけどね。
オブジェクト指向はハードウェアの都合までは吸収してくれんよなぁ。 マルチスレッドのデザパタ見ててそう思う。
- 227 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:44:09 ]
- 排他制御書き込みって
pthread_rwlockで実現できますか?
- 228 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 00:04:59 ]
- 素直にmutexつかっとけ
読み書き両方な
- 229 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 00:17:05 ]
- >228
排他制御書き込み実現しようとすると pthread_mutexでは、try_lockを全mutex分 毎回ぶん回すってことでおkなのかな? この辺の定石ってよくわからん
- 230 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 03:01:55 ]
- mutexが複数あるの?
どういう排他制御をしたいのかわからん
- 231 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:29:07 ]
- スレッド2000個作って
画像データダウンロードするやつ作ったんだけど スレッドが全部同時に動作しないんだ どこがいけないんだ?
- 232 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:42:50 ]
- 当てずっぽうだけどサーバが2000接続も同時に処理できないんじゃね
1個ずつ順番に処理して残りは待たされてるとか
- 233 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:53:38 ]
- そもそも2000スレッドが同時に動くはずがない。
- 234 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:58:58 ]
- 1000コア*2(HT)ですね
もしそんなのがあったとしても現状Linuxしか動かせない
- 235 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 16:25:36 ]
- 「全部同時に」ってのがどの程度の同時性を指してるんでしょうね
- 236 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 18:00:38 ]
- Sunのやつなら動くと思うよ
- 237 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:34:10 ]
- どの程度とかの精度の問題ではないんですよ
動けばいいだけのレベルなんですけど for ループ内で約2000 個のスレッド作るんで、 タイミング的にはほぼ同時な気がしますが OSにもよるかもしれませんが、 そうそう10秒以上も差が出るとは思えないんで 精度は10秒以内くらいの超おおざっぱでいいですけど 動かないんですよ ちなみにCUI コマンドプロンプトで多数のスレッドから printf されるとやはり多重に出力され hogehogehogehoge が hohohogegegehoge になったりするんでしょうか?
- 238 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:34:15 ]
- 環境は?
win32じゃなさそうだが
- 239 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:45:36 ]
- Erlangなら60000スレッドぐらい起せるよ
- 240 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:54:33 ]
- >>237
標準出力はバッファリングされるので、混ざる場合はバッファサイズずつ混ざる。 >237のように1バイトずつ混ざることはない。
- 241 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 22:34:02 ]
- >>237
動かないってどう動かないんだよ。
- 242 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 22:45:56 ]
- >>238
機密事項なので書けません><
- 243 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 23:39:13 ]
- おれも1万個ぐらい動かしてるけど別に問題ないな。
機密事項だから環境は書けないが。
- 244 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 23:53:58 ]
- >スレッド2000個作って画像データダウンロードする
あほのすることだな
- 245 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 05:05:46 ]
- >>244
ネットワークモニタの使用率が25%超えたことないんで 限界までいどみたかったとです
- 246 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 05:36:11 ]
- >>245
自分で対向サーバを用意すれば簡単だよ。
- 247 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 06:44:22 ]
- スレッドって関係あるん?
- 248 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 07:44:39 ]
- >>247
deteike
- 249 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 10:16:03 ]
- 2000個もスレッド作ってりゃオーバーヘッド大きすぎてそりゃ限界までいかんわな。
っていうかそもそもネットワークモニタって実効速度の%出してくれるんだっけ??
- 250 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 11:04:38 ]
- >>249
タスクマネージャにあるよ OSの限界ギリギリまで性能を出そうとしたのに なんてOSだ・・・
- 251 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 11:48:23 ]
- 馬鹿は巣にお帰りください。
- 252 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 15:04:34 ]
- だからなんでスレッドにすると帯域使用量が上がるんだっけ?
でっかいファイル一つを read するのと、スレッド2000個で read するので 差が出る理由はなに?
- 253 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 15:06:38 ]
- ネットワークの話じゃなかったのか。
- 254 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 15:19:33 ]
- ああ、そういうことね
1スレッドひとつにつき1つの画像をダウンロードするプログラムを組んだ このスレッドを2000個同時に実行したけど 2000個同時(プログラム的には)には動作してくれなかった ということ
- 255 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 15:47:41 ]
- だから、2000ポート空けて待つような対向サーバを自前で用意しろって。
- 256 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:10:56 ]
- >>252
思い込み
- 257 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:25:13 ]
- >>250
だからさあ、例えばギガビットイーサだったら100%って1Gbpsじゃないの? 実効速度250Mps出てても25%だぜ?
- 258 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:02:19 ]
- バス速度的に実際1Gbpsなんて無理
100Base-TXで考えなさい
- 259 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:07:35 ]
- FPGAのNICなら1Gっていったら1G出ますが?
- 260 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:08:02 ]
- うん
馬鹿は帰れ
- 261 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:11:23 ]
- >>254
そもそも、シングルコア、1スレッドあたりのタイムスライスを10msとすると、 1周するのに単純計算で10ms×2,000=20,000ms=20秒だ。実際には10msよりも もっと長いのが普通(※1)だし、スレッド切り替えにもコストがかかる(※2)し、 マルチコアとしてもコア数分の1にしかならない上に、コア間の調停にも やっぱりコストがかかる(※3)。 あと、ネットワークの実効速度についても、デカいパケットが順番に流れる なら、かなり帯域上限に近付けることができるが、細かいパケットが非同期に 衝突しまくりながら流れるようだと、いいとこ1/3くらいしか出ない。 ぶっちゃけ、アプローチが間違ってるとしか思えん。 ※1:ぐぐってみたところ、Windowsについてはこんなんが引っかかった。 ttp://itpro.nikkeibp.co.jp/article/COLUMN/20080602/305755/?ST=develop&P=3 もっと良い資料やUNIXについての言及があれば教えてくれ。 ※2:レジスタ等のコンテキスト情報を全部保存してパイプラインを捨てて 他スレッドのコンテキストを読み込む。キャッシュから溢れてたら最悪 メインメモリまで取りに行くハメになるぞ。 ※3:各コアが互いに読み書きできるレイヤまでデータが届く必要があるため。
- 262 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:37:21 ]
- たしか一般に、CPUサイクルで見て、
スレッド作成が数万〜10万サイクル(ひょっとすると数十万〜だったかも)、 コンテキストスイッチが数千〜1万サイクル とか見た気がする。
- 263 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:38:37 ]
- おっと、スレッドに関わるオーバーヘッドの話ね。
- 264 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 01:15:52 ]
- >>262
>コンテキストスイッチが数千〜1万サイクル 今時LinuxでもO(1)スケジューラなわけだが。
- 265 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 01:22:44 ]
- そりゃ的外れなレスなこって
- 266 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 01:48:56 ]
- ワロタ
- 267 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 09:39:27 ]
- WindowsとかLinuxとか・・・
そんな貧乏臭いOSの話ばっかでワロタ
- 268 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 10:27:54 ]
- そうですか
- 269 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:48:37 ]
- アセンブラ級はついていけn
- 270 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 18:58:28 ]
- 何十万ものスレッドをサポートするようなシステムもあるんだよね?
どういう構造になってんだろ 根本的に考え方からちがうのかな?
- 271 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 19:01:51 ]
- >>270
カーネルスレッドは使わない(ユーザスレッドでやる)、か、そういうスレッドを サポートしたカーネルでないと無理。普通のUnixの普通のカーネル(含むLinux) とかだと無理。
- 272 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:55:16 ]
- OSはWindowsXPなんですよ
で、ソースですが for( int i=0; i<2000; i++ ) { _beginthred( DoIt, 0, NULL ); } void DoIt( void * ) { DownloadURL( URL, filename ); _endthread(); } ってな感じですけど ほとんど同時時間にスレッドを起動させてるのですが、 タイムスライスが各スレッドに割り当てられないのでしょうかね? それともやっぱり >>232 さんの言っているように サーバー側が延滞処理をほどこしているんでしょうかね? 問い合わせたくてもあまり進んで聞けるようなことではないので
- 273 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 22:05:16 ]
- >272
スタック用の仮想メモリが足りなくなってない? あるいは、その呼んでいるDownloadURLが STAみたいな実装とかw >261 IOが支配的なスレッドで、タイムスライスの意味なんか ほとんどないとおもうけど。
- 274 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 22:48:50 ]
- 同一サーバにHTTPコネクションを2000張ろうとしていたオチと予想
- 275 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 23:28:21 ]
- Irvineとかで試してみればどうかな
- 276 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 23:41:31 ]
- >>274
攻撃とみなされても仕方ありませんな
- 277 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:06:27 ]
- >>273
仮想メモリなのに足りなくなるとは、これいかに。
- 278 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:15:39 ]
- 2000個のスレッドでスタックだけで仮想メモリ使い切るだろWin32なら。
- 279 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 00:20:56 ]
- いくらIOバウンドだって普通2000はやりすぎ。
普通はせいぜい100までだろう、CPU数にもよるがそれでも多いくらいだろう。 だいたい2000個の各ファイルのサイズはどのくらいで、 単体での転送速度はどのくらいなんだ。 ってダウンロードが2個までしか同時に動いてなかったりしてなw あとサーバ側も普通は当然そんなに同時処理できない キューに入って順番に処理されるだけ。
- 280 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:06:30 ]
- >>278
> 2000個のスレッドでスタックだけで仮想メモリ使い切るだろWin32なら。 相変わらず意味不明。
- 281 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:07:09 ]
- 俺がワーカスレッドをプールする場合は、
特に深く考えずに単にコア数の倍だけ用意しとく。 IOブロックで動けるようになった他のスレッドもIOでブロックされるだけだしね。
- 282 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:23:17 ]
- >277,280
正確には仮想メモリ空間。 Win32では、ふつー、プロセス毎に、ユーザ空間として 使用可能なのは、下位から7fffffffあたりまでで、2GB。 だいたい、ポインタが32bitであることの限界とみていい。 で、Win32のスレッドは、1つあたり、規定では1MBの スタックを仮想メモリ空間に確保する。他にもDLLとかの コード領域も同じ2GBの空間を使うわけで。
- 283 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:35:04 ]
- >>282
仮想メモリというのはプロセス毎にあってだな・・・
- 284 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:47:50 ]
- >>283
>237嫁
- 285 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 01:56:53 ]
- >>283のおバカさを示すなら>>191の方が適切だろ。
- 286 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 09:08:47 ]
- >>281
だったらコア数の2倍はちょっと少なくない? まあIOってもネットワークなどの場合で、 もちろん少ない投入数で帯域使いきれるような場合や 同一サーバにつなぐような場合は別だが。
- 287 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:26:51 ]
- Win32(笑)
- 288 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:28:16 ]
- ネイティブなプロセスやスレッドで並列性増やす方法は全然スケールしないから
軽量プロセス/スレッドが流行るんだろ Erlangのような言語は言語のレベルでそういうものをサポートしている 目的がI/O多重化なら昔ながらのselect系のシステムコールが使える WindowsならIOCP Javaは1.4以降でnioという形でそれをサポートしてるし Cならlighttpdで使われているlibeventのようなものがある それはそうと、Windows XPあたりだと、デフォではTCPの同時接続数が10だかに 制限されているはずだが
- 289 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:08:39 ]
- >>288
ソースは?
- 290 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:11:40 ]
- >>289
「どれ」についてのソースなのか分からんが、 最後のものについてなら、そのまんま Windows XP 同時接続数 でぐぐればいくらでも情報が手に入るだろ
- 291 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:18:08 ]
- UDPは制限あるの?
- 292 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:19:40 ]
- 知らん
UDPにはconnectionという概念がないから、多分無いんじゃないかとは思うが 自分で調べたらどうだ
- 293 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:25:13 ]
- いやです
ありがとうございました
- 294 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:40:30 ]
- ググってみたが、XPのSP2から1秒間につき10コネクションという
制限がついたらしい。 時間をあければ万単位までいけるみたいだが。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:40:39 ]
- Windows XP Professional の場合、ネットワーク経由で同時に接続することができるコンピュータの最大数は 10 です。
とありますが、 メッセンジャーに繋げてますが この状態だと最大数は9になるのでしょうか?
- 296 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 13:11:01 ]
- 制限解除するパッチもあるよ。公式じゃないけど。
- 297 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 13:11:23 ]
- もう少し詳しく調べてみた。
同時最大接続数が10に制限されるのは、listenする側の制限。 ようするに自分がサーバになる場合。 外向きの接続に関する制限は、half-open connectionが 1秒間に10個までに制限されている。(SP2から) half-open connectionは相手がacceptしてない接続のこと。 外向きの接続数に関しては、能力的な限界以外に制限は無さそう。 ただし1スレッドにつき64ソケットの上限有り。(回避は可能)
- 298 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 13:13:51 ]
- >>297
え?内向きの制限はもともとサーバー系でない奴にはついていて、 XP SP2以降のは、外向きの制限だろ?
- 299 名前:298 mailto:sage [2008/12/09(火) 13:15:20 ]
- 要は、listenじゃなくて、外に貼りに行くコネクション数に制限がついたってことな
- 300 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 14:35:58 ]
- >>298-299
そういう制限は見当たらなかった。 日本語の非プログラマ系のブログでそう書いてるところはあるが、勘違いだろう。 実際にセッションモニタ見てると、10なんて余裕で超えてるし。
- 301 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 14:47:37 ]
- >>300
は? Event ID 4226でぐぐれよ 秒間の「外向きの」同時接続試行回数に関する制限で、 非公式のtcpip.sysに対するパッチも出ているから
- 302 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:00:15 ]
- P2Pとかやると直ぐでるからわかる
- 303 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:12:52 ]
- ああ、論点のずれが分かった
10個以上のTCP/IPのコネクションが維持できないって制限じゃないだろ 秒間に10個以上SYNパケット(TCPの最初のハンドシェイクで使う)を 投げないようにしているだけのはずだ 要するにスレッド沢山つくって並列でダウンロードさせようとしたところで 10個目以降ではconnect()呼んだ時点で制限にひっかかり、少なくとも他の ハンドシェイクが完了するまでは待たされるってこった
- 304 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:36:05 ]
- ちゃんと297でhalf-open connectionと書いたんだが。
それを否定されたら、同時セッション数としか読み取れないよ。
- 305 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 15:45:44 ]
- そうだな、よく読んでなかった
すまん
- 306 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 17:47:13 ]
- クライアントでどこまでスケールさせる気だ。
- 307 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 20:04:18 ]
- googleのクローラでね?w
- 308 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 17:25:35 ]
- シングルスレッドでダウンロードするとうまくいくのですが
マルチスレッドでダウンロードするとエラーが返ってきて GetLastError() で戻り値を調べても 0 で何が原因か分からないのですが どなたか分かりませんか? WinXP です
- 309 名前:308 mailto:sage [2008/12/10(水) 17:29:32 ]
- マルチスレッドといっても、デバックの為、スレッドはひとつなので
競合などはおきないように設計しているのですけど、うまくいかないのです
- 310 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 17:39:11 ]
- さすがにそれだけで答えろって言われても、俺には無理だな。
GetLastErrorを呼ぶスレッドは合ってるの?
|

|