タイトル : Re^2: なにもないEXEなのにスレッドが4 投稿日 : 2008/02/08(Fri) 22:12 投稿者 : DOON
> > このEXEをタスクマネージャーでみると > > スレッド数が4となっています。 > そんなもんです。 そうですか、びっくりしました。 > > > こっちがスレッドを作成していないのに!! > > マルチスレッドのEXEが自動で作成されるのでしょうか? > 自分が管理するのは(作らない限り)一つだけなんで気にする必要は無いです。 それが聞けると安心です。 > > 問題は、今タイマーで動かしているプログラムがあって、 > > どうも、それがマルチスレッドぽい動きをするので > > 気になっているのです。 > タイマしだいで確かに別スレッドで動くものもありますが、多分マルチスレッドでは動いてません。 > なにか不審な点があれば具体的に質問をお願いします。 すいません。 system.windows.form.timerを画面に貼り付けて、 一秒周期で動かしています。 timer_timer { //SQLサーバーにつなぎにいく //失敗したら、シーケンシャルファイルに失敗した時刻を書き込む } としています。 ずーっと、SQLサーバーにつながらないというテストをしています。 すると、シーケンシャルファイルないに同じ時刻が立て続けに 三回ぐらい連続で書き込まれています。 SQLサーバーにつなぎにいくのは失敗したらmsecで帰ってくるのですが たまに、5秒ぐらい帰ってこないときがあります。 この5秒のあとに、シーケンシャルファイル内に同じ時刻が連続して 書き込まれるときがあります。 なので、その5秒の間にタイマーイベントが増えていっているのでは? と思ったのですが、シングルスレッドのはずなので、それはありえないと考えました。 そして、何もないプログラムを作成するとスレッド数が4こなので 驚いたというわけです。 解決策としては timer_timer { //最初にタイマーを殺す timer.enabled = false //各処理・・・・ //最後にタイマーを復活 timer.enabled = true } こうすると、問題がなかったのです。 ただ、この動きを理解したいのです。 以上、よろしくお願いします。 |