WindowsのVisualC++です。
同じひとつのプログラムの中で、ある関数があって、これを裏でやりたいのです。たとえば、
void readFiles()
{
for( i=0; i < 100000; i++ )
{
file.readline(i);
処理;
}
}
みたいな感じのサブルーチンを作って、これをそのまま実行すると、10秒くらいかかったとします。
すると、その間、キー入力などPreTranslateMessageに関することとか一切受け付けなくなりますよね。
このreadFilesという関数が終了するまで、ほかの仕事は一切できなくなってしまうと思うのですが、
これを裏ジョブにして、この関数を実行中でもキー入力を受け付けて他の仕事をするようにしたいのです。
そして、他の仕事がなくなってアイドル状態になったら、またこの関数の続きをするようにしたいのですが、どうしたらいいのでしょうか。
No.1ベストアンサー
- 回答日時:
スレッドを分けることで実現できます。
_beginthreadについて調べてみてください。
MFCを使っているなら、AfxBeginThreadの方がいいでしょう。
_beginthread、_beginthreadex
http://msdn.microsoft.com/ja-jp/library/kdzttdcb …
AfxBeginThread
http://msdn.microsoft.com/ja-jp/library/s3w9x78e …
No.2
- 回答日時:
既に回答あるように…スレッドを使うのが普通…かと。
で、スレッド使う場合は同期処理について考慮しておかないといろいろ不都合が出たりするのでご注意を。
ファイル読み込みループが回っている間に、GUIを閉じようとした場合にどうなるか…とか。
読み込んだ内容によってGUIなどに反映させる場合にどうするか…とか。
アイドル状態…についてはちょっと手間が必要かも知れません。
スレッドで動作していると割り当てられたCPU時間使って処理しますが、そこだけだとアイドル状態の判定とか難しいでしょう。
# また、スレッドだからとそのまま突っ走る処理だと…CPU使用率も上がっていきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スレッドの監視方法について
-
C++でマルチスレッド処理をさせ...
-
別スレッドからメインダイアロ...
-
msec単位のWait Timerが作れない!
-
スレッド内でのマルチスレッド...
-
_beginthreadexで生成したスレ...
-
VB2005 シリアル通信のClose処理
-
スレッドの終了の仕方
-
boost::threadでのjoinについて
-
メインスレッドのPostMessageと...
-
別スレッドからのフォームのテ...
-
スレッドがサスペンドされてい...
-
VBAで行をコピーして別のシート...
-
C# スレッドから親ウィンドウへ...
-
Macターミナルで実行中のプログ...
-
バックグラウンドのプロセスの...
-
大容量のメモリ確保をスワップ...
-
緯度、経度の 10進法と 60進法...
-
プログラム実行中に強制終了
-
エクセルが勝手に立ち上がる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WaitForSingleObjectの使い方に...
-
VC++スレッドの正しい終了のさ...
-
Windows上で、シグナル(SIGTERM...
-
スレッドの安全な終了のさせ方
-
スレッドの監視方法について
-
スレッドにて同一メモリの書き...
-
別スレッドのデータを受信できない
-
スレッドの終了はどうやるんで...
-
同一スレッドで、ロックをかけ...
-
スレッドの終了の仕方
-
別スレッドからメインダイアロ...
-
_beginthreadexで生成したスレ...
-
待機関数(WaitForMultipleObjec...
-
VB2005 シリアル通信のClose処理
-
マルチスレッドについて
-
Linuxでスレッド優先度って変え...
-
msec単位のWait Timerが作れない!
-
自作クラスのイベントを外部ハ...
-
スレッド一覧の取得
-
C# スレッドから親ウィンドウへ...
おすすめ情報