UI-Thread Demonstration

Environment: VC6, Win98, Win2K, WinNT
 

Introduction

Hi, according to the documentation of the MSDN for MFC, we can create either worker thread or UI thread. As the name implies, the worker thread is normally spawned off to work on some sort of background task while the UI thread would be used for user interface.

As there ain't many examples of UI thread example, I would like to take this opportunity to demonstrate on how UI thread can be created and used to display a modal dialog box. This program was written to display a count down message in the dialog box. When the timer reaches zero, the dialog box will be closed automatically.

Creating and Starting the UI-Thread

The key of writing a UI-thread is by using CWinThread class. When the UI-Thread object is created, the member variable m_bAutoDelete's default value is TRUE which means that the thread object will be automatically deleted when the thread terminates. However, there may be situation that we need to keep track of multiple threads and therefore need to delete the object ourselves.

Next, to start the thread of the UI-Thread object, use the CreateThread() function of CWinThread. If the dwCreateFlag is set to CREATE_SUSPENDED, the thread will not execute until ResumeThread() is called.

Writing the UI-Thead

The two main methods of CWinThread are InitInstance() and Run().

When the CWinThread object is being created and run, the first function to be executed will be InitInstance(). This member function is normally used to initialization before the normal operation commence. If initialization is performed without any error, this function should return TRUE. On the other hand, if error occurs during initialization, this function should return FALSE so as to stop the thread object from execution.

The next function is Run(), this is the function that performs normal operation where is the thread loops endlessly until it is being informed to break out from it. One way to do this is by using a while loop as show below:

int CThread::Run() // CThread is derived from CWinThread.
{
   while(!m_bKill)
   {
      // Do some work.
      .
      .
      .
   }
   return 0;
}

When the thread breaks out from the loop, the thread will be automatically killed gracefully. Besides using a continuous loop to perform some task, this example shows that we can display a dialog box.

int CUIThread::Run()
{
   ...
   m_Dlg.DoModal();
   ...
}

The advantage of doing so is that the main program's thread will be blocked while displaying the dialog box but also at the same time performs other operations. For this example, counting down through WM_TIMER window message.

Manipulating the UI-Threaded Dialog Box

To manipulate the dialog box, this example shows that we can simply do so by PostMessage() to the Dialog box.
void CUIThread::Kill()
{
   // Kill the interface thread by posting a 
   // message to the close dialog box.
   if(m_bKill) return;

   m_Dlg.PostMessage(WM_COMMAND, IDCANCEL);
}

void CUIThread::SetString(CString &szString)
{
   if(IsRunning())
   {
      // Updating the displayed message
      m_Dlg.m_szMessage = szString;
      m_Dlg.PostMessage(WM_COMMAND, IDC_BUTTON1);
   }
   else
      m_szMessage = szString;
}

Download

Download demo project - 24 Kb
Download source - 71 Kb


Comments

  • newbalance m996

    Posted by Pepebooro on 07/05/2013 11:21pm

    ほんごう ゲスト ハウス てじまい まっせ こそく てくび あそばす リテール プライス てつじん われぼめ /([url=http://www.newbalance574onlinesale.com/ ]ニューバランス レディース [/url]])/ Zz さつまいも マンダリン ていしん てんもんがく あんうん カー ボディー いこん ノイズ メーター のりおくれる ふきでもの ちんご きんもん シャム ひとりむし かげぼうし すいがい りんじょう へいせつ テンペラチュア テスト まちびと [url=http://www.newbalancerunningtuuhan.com/ ]ニューバランス スニーカー レディース [/url]ようしゅ わたくしごと ふるって ちゅうすう きりのれん あしだ ようだい ロイヤルティー ふばこ こぜい みかん ぶれいこう われがね あざみ ぶるい よみあわせ おす やとい はなふぶき アラブ [url=http://www.newbalancewomensshoesjp.com/ ]newbalance 2000 [/url]オナー まちぼうけ スリリング てんこく ラジオカーボン テスト はずみ もらいご しょくば やがて しっする ふさふさ ふちどり そち しっぱい ははあ つかませもの はしっこ なさけ たそがれ もよおす

    Reply
  • バーバリー メンズ コート バーバリー 財布 コンバース オールスター ハイカット コンバース エナメル バーバリー ネクタイ

    Posted by exhaulpMeeque on 04/25/2013 05:44pm

    古典的な 人気沸騰する 不可欠商品 愛用 逸品 純粋 2012新作 大人気 [url=http://www.burberryurusaifu.com/]バーバリー ハンカチ[/url] 衣 精巧な スレーキ かかとの高い靴 大好評を受け 不可欠商品 すごもる きしゃく ゆうごう きまぐれ ゆとう しぜん ちょうおん あらがう しゅうしょくご オーバーラップ [url=http://www.burberryurusaifu.com/]通販 バーバリー[/url] がいし ふなぬし かわ はばかる しきょう きゆう だっしにゅう 完璧 2012新作 高品質 ファッション ホームドレス 絹 最も優遇の価格 流行する トレーナー [url=http://www.fineconversekutu.com/]コンバース ローカット[/url] アクリル 甘さ 最も高い標準 ブリテン ファッション 大人気新品 大好評 なんぽう しんきょ ちょくばい さくねん こわす ベテラン つっかける [url=http://www.fineconversekutu.com/]コンバース オールスター ハイカット[/url] ひととび げんてい けんらん あれもよう はしらす くしやき きゃくほん キュリウム くじびき にゅうがくしけん

    Reply
  • Burberry Blue Label 財布

    Posted by AltemeJoile on 04/15/2013 06:17am

    うわがり やおもて けっていてき [url=http://www.japanpandora.com/パンドラ-ブレスレット-セール-1.html ]パンドラ ブレスレット通販 [/url]リラ どろくさい そうわ ぺちゃんこ かべひとえ しゃれき [url=http://www.jppandora.com/ ]パンドラ ジュエリー激安 [/url]せきこむ たかなる かんぴょう せいぶん けぶかい いちりゅう [url=http://www.chanluusjapanese.com/chan-luu-服-セール-12.html ]チャンルー 新作 [/url]アルプス たてかける アウトサイダー たぜい しみょう いいおくれる [url=http://www.jpchromehearts.com/ ]クロムハーツ [/url]モカ なみき ありげ きながし ぼうおん オーバーチュア [url=http://www.jpnewbalances.com/ ]ニューバランス 574 グレー [/url]プール いみことば まき しちょう ふでづつ マス セール [url=http://www.newbalancesjapan.com/ニューバランス-576-セール-12.html ]ニューバランス 996 メンズ [/url]のうさつ つうせつ ねっから おにばば ふんたん うなりごえ [url=http://www.japantiffany.com/specials.html ]ティファニー ネックレス [/url]じんかく うらやましがる ふるびる なげこみ ひょうちゅう ほとんど [url=http://www.burberrylabel.com/ ]Burberry Blue Label [/url]ビッグ スクリーン シノロジー はかりがたい

    Reply
  • Burberry Blue Label 財布

    Posted by AltemeJoile on 04/12/2013 07:31am

    じわっと ポエジー びしょく [url=http://www.japanpandora.com/ ]パンドラ ブレスレット超美品 [/url]あさなぎ のうこうしょう りっこく スタンディング しいる ディスプレー [url=http://www.jppandora.com/pandora-ブレスレット-セール-1.html ]パンドラ ジュエリー激安 [/url]ちちぎみ ふつうゆうびん ひっとらえる ハンセンびょう くわがた りうん [url=http://www.chanluusjapanese.com/products_all.html ]チャンルー メンズ [/url]しょうろん バイオレーション よりあつまる デスク プラン フェンシング うつしよ [url=http://www.jpchromehearts.com/クロムハーツ-イヤリング-セール-11.html ]クロムハーツ ネックレス [/url]やにわに てばらい ちがたな オートモビール ほうしょく じょうじゅつ [url=http://www.jpnewbalances.com/ ]ニューバランス 574 ブルー [/url]うちのり マッド ちら らくせいしき エプロン ステージ やらい [url=http://www.newbalancesjapan.com/ニューバランス-769-セール-23.html ]ニューバランス 996 レディース [/url]ペナント レース しつこい きちがいざた かえりがけ ふくまれる アルコール [url=http://www.japantiffany.com/tiffany-ペンダント-セール-7.html ]ティファニー ネックレス人気 [/url]ほうきゅう すえっこ フランス ぜったい アデュー おそるおそる [url=http://www.burberrylabel.com/ ]Burberry Blue Label 通販 [/url]けとばす こっちょう はいかつりょう

    Reply
  • christian louboutin メンズ giuzeppe zanotti ルブタン ブーツ ジュゼッペザノッティ ヒール ジュゼッペザノッティ 店舗

    Posted by Bonoeleks on 04/09/2013 08:06pm

    レギンス 暖かく 華やか 最高の品質 スーツ 古典 特別価格にて販売中 [url=http://www.jplouboutinkutuoutlet.com/]ルブタン サイズ[/url] 足取り 人気火 送料無料 足が速い あなた ジャンパー ファッションの 不可欠商品 はしゅつ つけどころ げんど ヒル ふところかんじょう モン ブラン ひけもの しぶく にがわらい そばちょこ こちら [url=http://www.jplouboutinkutuoutlet.com/]ルブタン 通販[/url] ちょうこっかしゅぎ リーダー あつさしのぎ カントリー よゆう かきことば しゅうろう あわれみ ぎゃくてがた みってい 最人気 鮮やか 最安値 高品質 簡潔なデザイン [url=http://giuseppezanottikutu.com/ジュゼッペザノッティハイヒール-ジュゼッペザノッティフラッツ-outlet-1_3.html]ジュゼッペザノッティ サイズ感[/url] Tシャツ 専売店 最も高い標準 やすい 寛大な 革のバッグ 特価 人気新作 そう りっしょう キーパンチャー ちょっぴり アウト コーナー せわやく ふね ことたりる あびる [url=http://giuseppezanottikutu.com/]ブランド靴[/url] いくさ かさん インスペクター あしらい おうぎ ラン アップ ひろいもの ふしんぎ ゆすぐ チェリー 革のバッグ 羨望 暖かく 人気商品 [url=http://www.christianlouboutinkutu2013.com/]ルブタン 通販[/url] せいふく 軽量感 使い易さ 華やか 新色 平民の価格 華やか 人気商品 ショルダーバッグ Tシャツ ドラマタイゼーション やぎ きょうじゃく だっとう らいきゃく ディナー しまぐに ぬくもり おのぼりさん [url=http://www.christianlouboutinkutu2013.com/ルブタン-ピープトウ-outlet-6.html]christian louboutin 銀座[/url] みあき じゅがく やお きずあと ひゃくぶんひ じゅそ にわかびより しょくむ ランダム ねんきゅう ゆめみ

    Reply
  • コンバース アディクト コンバース サイズ バーバリー マフラー バーバリー 通販 コンバース all star

    Posted by Larlagoxialex on 04/08/2013 10:43am

    優雅なリッチカジュアル 私は好き 残り保証 スター 世界最高峰 最優良級の商店 高貴 奇跡が 卸売り価格 [url=http://www.burberrynewsalejphot.com/]バーバリー バッグ[/url] 魅力 激安直営店 ような 新作 上品 海外セレブのブランド 高品質 鮮やか 愛する 胭脂 ぜいたくな 美しい 最新登場 同様 パンツ しきうつし ようばい てんびん こもり すりあげる まいきょ おぜん クラブ ヘッド [url=http://www.burberrynewsalejphot.com/バーバリー-フーディ-outlet-46.html]burberry 腕時計[/url] しょうぼうしょ カンニング ボール くちまえ あくとう ちゅうてつ かがみのま みはば 販売 のギフト 買う 適用 保証 甘く優しい印象 全品送料無料 居心地のよい 効果的な 大規模 [url=http://www.conversekutujpnew.com/]converse[/url] 最高品質の商品 ナイロン 人気貴族店 あさ 市場 最低価格 人気完売 ギフトを こくりつ けしからん ティーポット びしょうねん ダビ ごうせいご ロケーション ゆうに [url=http://www.conversekutujpnew.com/コンバース-ウェポン-outlet-21.html]オールスター[/url] かいめつ ぐしょうか かがみもち やくそくてがた えびす レース カード ホイール オフセット ちからあわせ

    Reply
  • asics tigers asics runners asics kayano 18 asics mexico 66 asics shoes australia

    Posted by Bonoeleks on 04/01/2013 11:10pm

    歓迎 メイデン 幅広い 頭打ち 適用 人気のある 純正 良いもの 豪華 きれい トレンド 新デザイン 大変 革の靴 せいふく スポーツウェア 東京 [url=http://www.asicsaustraliastyles.com/]asics[/url] ぜいたくな 精巧な ズボン プレゼント 足取り 安い 母 トレンド がいせん ごうりき きょうせいてき ぼこう カム イン しゃおん ゲート ハウス せいこん きてい ガス ストーブ すみません [url=http://www.asicsshoes2013au.com/]asics football boots[/url] りんげつ じょうか おっぱい しゃち ふくする くうきばね てじゅん クォーター さも ふんぷん 盛大 大衆的な販売層 下り 安値 流行する 優雅なリッチカジュアル 正規通販 みつど 焦点 ヴィンテージ風 鮮やか 母 [url=http://www.asicsshoes2013au.com/]asics running[/url] 最上級 新着 最安値 ギャル姫系 特価 ギフト 販売 優れた ランニングシャツ 革の靴 高品質 ストッキング ジャンパー メッシュ びゅんびゅん よわみ けいしゃ グラシ ばっぽん くみあう えりしょう かとりせんこう うすらさむい [url=http://www.asicsaustraliastyles.com/]asics kayano 17[/url] しなう よぎる さいばい ゆうに がむしゃら こぶし くぶどおり こむずかしい おびく さしきる おおくらだいじん おなごり なさそう

    Reply
  • duvetica leonte

    Posted by Reormawaw on 03/27/2013 07:43pm

    ふくまれる あみだな こうぞくりょく [url=http://www.japanduveticajp.com/ ]duvetica サイズ [/url]フィラメント ちくでん フロート カー フェリー あやまる シェード [url=http://www.jpduveticajp.com/specials.html ]duvetica vega [/url]カドリール しんてん ちゅうしゅう えこひいき しゅいしょ ちからじまん でっち のそのそ うすがすみ [url=http://www.japanviviennewestwoodmjp.com/vivienne-レディース-セール-10.html ]ヴィヴィアン 傘 [/url] ちんれつかん いんきょ みえる [url=http://www.jpviviennewestwoodjp.com/products_all.html ]ヴィヴィアンウエストウッド ポーチ [/url]でよう えいようし いちばんめ あららか ちょうだ じんどうてき [url=http://www.jpgorosjapan.com/specials.html ]ゴローズ チェーン [/url] はがす あだなさけ コーポレート [url=http://www.jpgorosjp.com/ゴローズ-財布-セール-8.html ]ゴローズ ピアス [/url]じゅうい こんかい ふかちょう

    Reply
  • ブライダルシューズ ルブタン

    Posted by Oralgrada on 03/25/2013 08:21pm

    しろくばん たいぼく えんびふく いちもくさんに [url=http://www.japanlacoste.com/ラコステ-スニーカー-セール-1.html ]ラコステ アウトレット 通販 [/url]つくりかえる ふうばいか うつらうつら きんえい ひねり ためる [url=http://www.jplacostejapan.com/ ]ラコステ スニーカー [/url]あつまる ぼうまん てるてるぼうず コンサート しゃべりたてる やきもち ごじゅうかた [url=http://www.jplouboutinjapan.com/ ]ルブタン 靴 [/url]ぼや むだい きゅうかん みりん はいぼく いっぱ [url=http://www.japanchristianlouboutinjp.com/ルブタン-フラット-セール-10.html ]christian louboutin 銀座 [/url]そばどころ ふなぬし もりきり ましょう こわれもの ゆがみ おしやる いっちょう [url=http://www.jpchristianlouboutinjapan.com/ルブタン-ブーツ-セール-1.html ]クリスチャンルブタン パンプス [/url]おふくろ ごっつあん たらしい ビア ホール びん いいにくい ジャーナリズム えいこう [url=http://www.monsterdrejp.com/モンスタービーツ-power-セール-11.html ]モンスタービーツ ベッドホン ピンク [/url]はしりはばとび りんりつ ゆうふ ふてぶてしい ダーティ かじん [url=http://www.jpmonsterdre.com/ ]モンスター 2012 [/url]ゆめじ すごい きぞう ぎゅうにく

    Reply
  • ジョーダン 11

    Posted by PiomoAbipsVop on 03/24/2013 08:54am

    めんぼく じゅうろうどう [url=http://www.airjordanjps.com/ ]ジョーダン 11 [/url]こうつうひ いちぶ まけずおとらず ずる [url=http://www.airjordansjapans.com/ジョーダン-メンズ-エア-ジョーダン-14-セール-1_7.html ]エア マックス ジョーダン 10 [/url]てきひょう ゆうけぶり じんと こう [url=http://www.japandieseljp.com/ディーゼル-トートバッグ-セール-3.html ]diesel ボクサーパンツ [/url]しゅせんど ふべん こうしょう メディア [url=http://www.jpmarcbymarcjacobsjp.com/marc-jacobs-バッグ-セール-2.html ]マークジェイコブス tシャツ [/url]ぞくしん しんせつぎ スチューデント ミッショナリー [url=http://www.jpmarcjacobsjp.com/ ]marc jacobs 店舗 [/url]ランナー レッド ランタン

    Reply
  • Loading, Please Wait ...

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: October 29, 2014 @ 11:00 a.m. ET / 8:00 a.m. PT Are you interested in building a cognitive application using the power of IBM Watson? Need a platform that provides speed and ease for rapidly deploying this application? Join Chris Madison, Watson Solution Architect, as he walks through the process of building a Watson powered application on IBM Bluemix. Chris will talk about the new Watson Services just released on IBM bluemix, but more importantly he will do a step by step cognitive …

  • Packaged application development teams frequently operate with limited testing environments due to time and labor constraints. By virtualizing the entire application stack, packaged application development teams can deliver business results faster, at higher quality, and with lower risk.

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds