2017-01-14 11 views
0

開発者が開発時にSWTから警告を受けなかったため、ファイルシステムまたはネットワークにアクセスしてメインスレッドをブロックしているEclipseのコードが多数表示されています。SWTのメインスレッドをブロックしているコードがある場合、警告を受け取るにはどうすればよいですか?

SWTのメインスレッドをブロックしているコードがある場合、警告を受け取る方法はありますか?

私はSWTのためにhttps://developer.android.com/reference/android/os/StrictMode.htmlを見たいと思います。

+0

実際にコードがUIスレッドで実行されていることを確認してください。多くのEclipseコードは、ジョブやUI以外のスレッドで実行される他の方法で実行されます。これを保証する方法はありませんが、コアのEclipseコードは一般的によく書かれており、正しいことをしています。 –

+0

EGitに似たバグが見つかりました:https://bugs.eclipse.org/bugs/show_bug.cgi?id=335044私は来週末に投稿します – Eduardo

+0

https:// bugs .eclipse.org/bugs/show_bug.cgi?id = 510477 – Eduardo

答えて

0

SWTコードを静的に解析し、UIスレッドをブロックするコードのパッセージを検出するツールはありません。

UIスレッドをブロックするコードを見つける唯一の方法は、実行時にアプリケーションを監視することです。あなたは、Eclipseワークベンチ/ IDEを使用している場合

、あなたはあまりにも長い間、UIスレッド上で実行されるコードを見つけることが(設定>一般>UIの応答性の監視)を監視UIの応答性を有効にすることができます。

SWTイベントPreEventPostEventDisplayのレジスタリスナー)を使用すると、アプリケーションコードがイベントを処理する時間を測定できます。

+0

UIスレッドでIOを検出できないため、開発者マシンではほとんど時間がかかりませんでしたが、ユーザーマシンでは多くの時間がかかることがありますネットワークファイルシステムが遅い、またはネットワークが遅い場合 – Eduardo

+0

そうですね、そのような場合は気付かないでしょう。 –

関連する問題