森理 麟(moririring)のプログラマブログ

ゲームプログラマ森理 麟がのプログラムの話題を中心に書くブログです。

クッキーツイートの高速化 その9 3つの処理に分ける #CookieToEat

BackgroundWorkerはお手軽にマルチスレッドを実現出来ます。

そのためには先ず処理を、3つの関数に分ける必要があります。

本当はもう1つありますが、話をシンプルにするため、後で説明します。

重要なこととして、今までの処理も、コメントや「#if false」などで残してください。


その3つの分け方とは、開始と処理と終了です。

今まで処理していた関数で開始処理だけします。

次に処理していた内容を処理関数に渡します。

最後に、開始処理で使った変数などを終了関数で終了処理します。


3つに分けた時にビルドが通らなくなる変数は、グローバル化してください。

ボタンなどコンポーネントであれば、そのまま使えます。

分けると聞くと面倒に感じるかも知れません。

しかし、こういったことは普通によくやると思います。


ボタンに集約して処理をする場合は、最初から分けて作る意識を持っておきましょう。

開始と処理と終了さえ意識しておけば、移行処理は更にスムーズです。

最初から意識しておけば、移行処理も殆ど必要ありません。

これで、マルチスレッド化出来ます。