• ベストアンサー

順番に処理させたい

とある処理を順番どうりに処理させるにはどのような関数を入れるといいのでしょうか? タイマーで処理させていますが、 勝手に順番が入れ替わってしまうようなんです。 処理A 処理B 処理C となっています。 がなぜか処理Bが先に行われて、処理Aが行われます ※タイマーは2秒(2000MS)おきに実行し、一定の条件(その条件もタイマーで決定させる) ちなみに行数はそんなに多くないです。(多分・・・) 以上御願いします。 ちなみに .NET です。

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

>なぜか処理Bが先に VBに限らずですが、コードは上から順番に解釈されていきます。ここで意図しない動きになっているというのは関数云々以前のバグかと思うのですが。 デバックでステップインさせながら1行ずつおっていったらどうなってるんでしょう。 go文か分岐かループかその辺で思いもよらないところに処理が飛んでるだけかと思います。

kenta_tanaka
質問者

補足

デバックでステップインさせながら1行ずつおっていったらどうなってるんでしょう。> それをするとなぜか(タイマー処理が原因?)アプリケーションの画面を開いても、白くなり 応答なしになってしまいます。 go文か分岐かループ・・・・> は確かに使用していますが、その部分では使用していません。 このような感じです。 if hen=1 then 処理 A 処理 B 処理 C endif またこの部分もタイマーに含まれていますが、自分自身で無効にしています。 time.Enabled = False

その他の回答 (3)

  • bikkuri
  • ベストアンサー率33% (23/68)
回答No.4

画面の表示などイベント処理に関係するのものは 処理を行っても直ちに画面などに反映されません。 (反映のイベントが処理された時に初めて変わる) 結果、見た目に最後の物しか有効にならないように見えることがあります。 sleep()だけでは、単純に待つだけなのでその間の イベントを処理してくれないはずです。 DoEventsやRefreshなどが必要な感じがします。 また、確認として、ブレークポイントやStop文(vb6)など を設定して見ては?

kenta_tanaka
質問者

お礼

皆様 ご回答ありがとうございました。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.3

>アプリケーションの画面を開いても、白くなり ステップインしている最中にアプリの画面を開くのは無理です。 あと応答なしになるのならその瞬間の行に問題があるのが分かるんじゃないかなと。 他にタイマー処理が問題かと思われるのならその部分をコメントアウトしてみるとか色々試せるかとも思いますが。

  • GENESIS
  • ベストアンサー率42% (1201/2809)
回答No.2

プログラムの基本的な動きは命令を記述した順番です。その流れを変えるのは無条件あるいは条件付きのジャンプ命令等です。 処理フローチャートはちゃんと書いていますか?。デバッグはちゃんとされていますか?。思い通りの処理ステップが踏めないのはやはりどこかに問題があると思います。行数が多い少ないは問題ではないと思います。また、命令の使い方を間違えている場合もあるかも知れません。命令等をもう一度見直し、まずは机上で、そしてマシン上で1行ずつ実行をして処理の動きを調べてみる必要があります。 私も昔はプログラムを組んでいました(アセンブラやC等)が、自分では正しいと思いこんでいても、実際思いがけないところでバグをよく見つけました。 変数の使い方やデータの格納の仕方にも問題はありませんか?。以外と単純なミスが多いものです。地道にファイト!。

kenta_tanaka
質問者

補足

処理フローチャートはちゃんと書いていますか> 簡単ですが書いています。 デバッグはちゃんとされていますか?。 >なぜか 応答なしになってしまいます。 変数の使い方やデータの格納の仕方にも問題はありませんか?。> 多分それは関係ないと思います。 内容は フォームにあるラベル(25コ)の色を 赤にします。 それだけです。 なおその下に フォームにあるラベル(25コ)の色を 白にします。 というのもありますが、 Sleep(1000)が数個入っているので、見た目分かると思います。  ご回答ありがとうございました。

関連するQ&A

専門家に質問してみよう