トップページ > 記事閲覧
不規則なタイミングでアプリケーションの動作が停止してしまう
名前:YGHT 日時: 2017/07/21 12:50

初めまして、DxLibの開発ご苦労様です。 今回C# DxLib v2.0.50727にてツール開発のために複数ウィンドウで描画処理を行うプログラムを作っていました。 しかし、起動した直後やフォームのリサイズを行っている時に、突然デッドロック状態になりプログラムが動かなくなるようになってしまいました。 こちらがそのプログラムのソースコードになります https://drive.google.com/open?id=0Bwmnkq1wa0coZkNiS1FKeTFBbWs (非常に不安定なので実行の際はお気を付けください) そして、色々と検証してみたのですが DXLibManager.Initialize() => 一度のみの実行を確認 DXedPanel.GetHandle() => 正常に戻り値を返しているのを確認 DXLibManager.Initialize()内で定義しているDrawingTask => while文の一番初めの処理から一番最後の処理までフリーズ直前に動作しているのを確認 DXLibManager.ChangeDrawingSize() => コメントアウトしてもフリーズを確認 といった具合でどこが原因なのかさっぱりわかりませんでした Debugフォルダ内にLog.txtもあったのですが、ざっと見た感じ正常な動作のように見えました。 この問題の解決方法をご教授いただければ幸いです。
メンテ

Page: 1 |

Re: 不規則なタイミングでアプリケーションの動作が停止してしまう ( No.1 )
名前:管理人 日時:2017/07/23 01:56

DXライブラリはスレッドセーフではないので、DXLibManager.cs の new TaskFactory().StartNew(() => 以下に 記載されている別スレッドで実行されるDXライブラリの処理とメインスレッドの処理がどこかで バッティングしてしまっているのだと思います DXライブラリの処理を別スレッドで処理しないようにすれば( new TaskFactory().StartNew(() => を 使用しないようにすれば )本件の不具合は発生しなくなると思いますので、よろしければ new TaskFactory().StartNew(() => を使用しないようにプログラムを変更してみてください m(_ _)m
メンテ
Re: 不規則なタイミングでアプリケーションの動作が停止してしまう ( No.2 )
名前:YGHT[解決] 日時:2017/07/23 13:33

FormsのTimerをスレッド代わりに使用したところフリーズしなくなりました、ありがとうございます!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存