現役プログラマー村健の、投資に役立つプログラムを作るための勉強ブログです。 自動売買、システムトレードに挑戦!します。 勉強と習得の成果を記録です。
本ブログについて
本ブログは、プログラマー観点で投資への対費用効果を上げるために何ができるか?を考えていくブログです。
基本的には、ツール作成・公開、投資に関わるプログラム情報、最終的には 完全なる自動売買を目指しています。

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
先日、平日に休みが取れてなおかつ時間があったので、昔開発していた疑似楽天RSSツールをテストしてみました。

データ受信機能にバグがあったはずなので色々テストしてみると、データ取得停止・開始を繰り返し行うとツールが落ちました。

「DDEからのコールバックがガベージコレクションされたデリゲートで行われた為・・・」
な感じのエラーが発生していました。

このエラーですが、以前にデータ受信中に落ちるという問題があったときも同様の内容でツールが落ちていました。(こちらの記事参照)

当時の原因としては、DDEのAPIからコールバックされるデリゲートのアドレスを保持しておかなかった為、ガベージコレクション発生時にデリゲートが削除され(またはアドレスが移動?)、コールバック発生時にデリゲートにアクセスできず発生していました。
対処として、デリゲートのアドレスをグローバル変数に保持しておくことでメソッドが参照された状態になり、ガベージコレクションの対象外となることで、エラーが発生することがなくなりました。

ところが、状況は違えどまた発生しています。
参照していればガベージコレクションの対象にはならないはずなのですが、これだけではダメなのでしょうか?
ガベージコレクションの詳しい動作がわからないので、原因の調査はお手上げです。

結局、デリゲートを保持しているグローバル変数をガベージコレクションの対象外としました。
今のところ問題なく動いています。これで直ればよいのですが・・・。

ここら辺に興味のある方は「GCHandle.Alloc」でググってみてください。


ちなみに、疑似データ送信部分(マケスピ+RSSの疑似動作機能)は正常に動作しています。
EXCELの値がリアルタイムに変化しまくってます。

次回にテストできるのはいつになるかわからないので、とりあえずベータ版で公開しようか・・・。
それにしても公開用のページ作ったりReadmeを作ったり大変だなぁ・・・。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://investprogrammers.blog70.fc2.com/tb.php/230-61c3703d
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。