{"id":8099,"date":"2023-11-09T10:09:28","date_gmt":"2023-11-09T01:09:28","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=8099"},"modified":"2023-11-09T10:28:30","modified_gmt":"2023-11-09T01:28:30","slug":"c-backgroundworker","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=8099","title":{"rendered":"C# &#8211; BackgroundWorker"},"content":{"rendered":"<h1>C# &#8211; BackgroundWorker<\/h1>\n<p>BackgroundWorker \ub294 \uc774\ub984 \uadf8\ub300\ub85c \ubc31\uadf8\ub77c\uc6b4\ub4dc\uc5d0\uc11c \uc791\uc5c5\ud574\uc57c \ud560 \ud504\ub85c\uc138\uc2a4\ub97c \uc2e4\ud589\ud574\uc90d\ub2c8\ub2e4.<br \/>\n\ud55c\uac00\uc9c0 \ub354 \uc88b\uc740 \uc810\uc740 \uac04\uac04\ud788 UI \uc5d0 \uc811\uadfc\ud574 \uac12\uc744 \uac00\uc838\uc624\uac70\ub098 \uac12\uc744 \uc218\uc815\ud574 \uc904 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c, progress bar \ub97c \uc5c5\ub370\uc774\ud2b8 \ud574\uc8fc\ub294 \uae30\ub2a5\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc0dd\uc131<\/h2>\n<pre><code class=\"language-csharp\">private BackgroundWorker create_wav_and_play_worker = new BackgroundWorker();\n\n\/\/\/ ...\n\ncreate_wav_and_play_worker.WorkerSupportsCancellation = true;\ncreate_wav_and_play_worker.DoWork += new DoWorkEventHandler(create_wav_and_play_DoWork);\ncreate_wav_and_play_worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(create_wav_and_play_RunWorkerCompleted);\n\n\/\/ ...\n\ncreate_wav_and_play_worker.RunWorkerAsync();<\/code><\/pre>\n<h2>DoWork<\/h2>\n<p>UI \uc5d0 \uc811\uadfc\ud558\uae30 \uc704\ud574\uc11c\ub294 <code>Dispatcher<\/code> \ub97c \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.<br \/>\n\uc544\ub2c8\uba74 \uc544\ub798\uc640 \uac19\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<blockquote>\n<p>\ub2e4\ub978 \uc2a4\ub808\ub4dc\uac00 \uc774 \uac1c\uccb4\ub97c \uc18c\uc720\ud558\uace0 \uc788\uc5b4 \ud638\ucd9c\ud55c \uc2a4\ub808\ub4dc\uac00 \ud574\ub2f9 \uac1c\uccb4\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n<pre><code class=\"language-csharp\">private void create_wav_and_play_DoWork(object sender, DoWorkEventArgs e)\n{\n    Thread.Sleep(100);\n    \/\/ ......\n    Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate {\n        vlinecenter = XXXX.VlineCenter;\n        tp = (DataContext as XXXXViewModel).SelectType;\n    }));\n}<\/code><\/pre>\n<h2>RunWorkerCompleted<\/h2>\n<p>\ud504\ub85c\uc138\uc2a4 \uc644\ub8cc\uc2dc\uc758 \ud568\uc218\ub3c4 \uc0dd\uc131\ud574 \uc90d\ub2c8\ub2e4.<br \/>\n\uc0dd\uc131\ud558\uc9c0 \uc54a\uc73c\uba74 \uc608\uc678\uac00 \ubc1c\uc0dd\ud574 BackgroundWorker \uac00 \uac11\uc790\uae30 \uc885\ub8cc\ud574\ub3c4 \uc544\ubb34\ub7f0 \uc624\ub958 \uba54\uc2dc\uc9c0\ub97c \ubc1b\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-csharp\">void create_wav_and_play_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)\n{\n    if (e.Error == null)\n    {\n        \/\/Worker completed successfully\n    }\n    else\n    {\n        CommonMessageBox.BasicMessageBox(e.Error.Message);\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>C# &#8211; BackgroundWorker BackgroundWorker \ub294 \uc774\ub984 \uadf8\ub300\ub85c \ubc31\uadf8\ub77c\uc6b4\ub4dc\uc5d0\uc11c \uc791\uc5c5\ud574\uc57c \ud560 \ud504\ub85c\uc138\uc2a4\ub97c \uc2e4\ud589\ud574\uc90d\ub2c8\ub2e4. \ud55c\uac00\uc9c0 \ub354 \uc88b\uc740 \uc810\uc740 \uac04\uac04\ud788 UI \uc5d0 \uc811\uadfc\ud574 \uac12\uc744 \uac00\uc838\uc624\uac70\ub098 \uac12\uc744 \uc218\uc815\ud574 \uc904 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, progress bar \ub97c \uc5c5\ub370\uc774\ud2b8 \ud574\uc8fc\ub294 \uae30\ub2a5\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc0dd\uc131 private BackgroundWorker create_wav_and_play_worker = new BackgroundWorker(); \/\/\/ &#8230; create_wav_and_play_worker.WorkerSupportsCancellation = true; create_wav_and_play_worker.DoWork += new DoWorkEventHandler(create_wav_and_play_DoWork); create_wav_and_play_worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(create_wav_and_play_RunWorkerCompleted);\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=8099\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[40],"tags":[],"class_list":["post-8099","post","type-post","status-publish","format-standard","hentry","category-language"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8099","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8099"}],"version-history":[{"count":6,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8099\/revisions"}],"predecessor-version":[{"id":8105,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8099\/revisions\/8105"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8099"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}