JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

プログラミング質問広場

本掲示板は、プログラミングに関する情報を作者様同士で共有・議論していただく場として用意いたしました。
JV-Link、JV-Dataに直接関連しない(一般論としてのプログラミング方法やAPI・メソッドの利用法などの)スレッドはこちらに立ててください。

一括表示 リストに戻る
タイトルアプリが応答なしになる原因は?
記事No5175
投稿日: 2024/02/25(Sun) 00:01
投稿者平山
競馬ソフトに関する質問ではないので申し訳ないです。
Win 11、 VBnet2022 32Bit動作でアプリを作成しました。 
開催日にオッズ、騎手、除外馬、天候、馬場状態情報を3分間隔で終日取得しH
DDに保存しています。JVLinkエラーが発生するとメッセージを表示しています。
アプリが起動していることを確認する為に何もないフォームを表示しています。
フォームの表示イベントで非同期スレッド1を開始しそこから非同期のスレッ
ド Private Async Sub 非同期スレッド_データ取得 を呼び出します。フォー
ムの表示イベントは終了し、非同期スレッド1も終了し非同期スレッド_データ
取得スレッドだけが終日動作しています。このアプリが稀に応答なしになります
ので非同期スレッド_データ取得スレッドからフォームのタイトルバーに現在時
刻を表示させて動作していることを確認しています。タスクマネージャーでCPU
の使用率を確認しても0%です。

このように一見何の問題もないアプリですがこれを応答なしとOS(Win11)が判
断する基準をご存じの方に基準を教えて頂きたいです。
宜しくお願いします。

タイトルRe: アプリが応答なしになる原因は?
記事No5179
投稿日: 2024/02/28(Wed) 22:29
投稿者サメの餌
平山さん、こんばんは。

ご質問へのダイレクトな回答は知りません。ちょっと気になったので書かせて
頂くだけなのでスルーして頂いてもかまいません。

> 開催日にオッズ、騎手、除外馬、天候、馬場状態情報を3分間隔で終日取
得しH
> DDに保存しています。JVLinkエラーが発生するとメッセージを表示してい
ます。

オッズに関しては色々な意図があって3分間隔での取得もありなのかもですが、
騎手、除外馬、天候、馬場状態に関してだとJVWatchEvent利用した方が無駄が省
けると思ったりします。

ただ、HDDへの保存がどの様に行われているのかは分かりませんが、このイベン
トもやや工夫が必要になるかもです。非同期でHDDにアクセスする場合にはなん
にしても工夫は必要かとは思います。

自分のアプリでは詳細までは未確認ですが、多分イベント情報取得時とマニュ
アル操作からのDBアクセス競合でデッドロックしてるんじゃないかと思ったりす
る事があります。ただ、現時点まれに起きるし、不定期だしで、そもそもアプリ
をリリースしてないので自分が納得すれば良いだけなので^^; 今後リリースも考
えてはいますので対処は今後必要だとは思ってます。

内容的にもなかなかレス付き辛い内容かと思ったので書かせて頂きました。

タイトルRe^2: アプリが応答なしになる原因は?
記事No5180
投稿日: 2024/02/28(Wed) 23:17
投稿者平山
サメの餌さん
回答有難うございます。
JVWatchEventだと常にJVLinkを起動していないといけないと思うので使ってい
ません。現状は使うときにJVLinkを起動しデータ取得が終了するとJVLink=nothi
ng としています。正直JVWatchEventとどちらが良いのかわかりません。

VBNet のPrivate Async Sub 非同期スレッド_データ取得 も使いやすく出来て
いるみたいで他にスレッドが無い場合は同期スレッドと同じように動作するみた
いです。
まだ使い始めたばかりでよくわからないのが正直なところです。
このPrivate Async Sub でバックグラウンドアプリのようにパソコンに負荷を
かけないで動作させるのが狙いです。

VBNetで競馬アプリを作るのは私には無理なのでHDDに保存したデータをエクセ
ルで活用します。

先週は2日の稼働で応答なしが1回発生しました。また暫く様子を見ます。

ウィンドウを閉じる