ありがたいありがたい
f345769e38
2021/10/02 (土) 09:45:23
PCOTとても便利に使わせてもらっています。
v1.1.5のソースから個人的に.NET5.0対応版を作っていて気付いたのですが
HttpClientの使い方が不味い箇所がありましたのでご報告させて頂きます。
以下のブログにて説明がありますように、HttpClientはstatic変数に保持して
使わないとローカルのポートをどんどん消費してしまいます。
https://qiita.com/superriver/items/91781bca04a76aec7dc0
それと未使用のHttpClientが他に一箇所ありましたので、そちらもご確認
頂ければと思います。
ちなみに.NET 5.0に対応することで高DPI対応に加えて、マルチディスプレイ、
且つモニター毎にDPIが異なる場合でもキャプチャ翻訳の座標がズレなくなります。
※Formが表示されているモニターのDPIがControl.DeviceDpiでちゃんと取得できる。
長文失礼しました。
通報 ...
とても有意義な情報ありがとうございます!
HttpClientを使用している部分が一番使用頻度の高いWebAPIだったのでこれは問題ですね。
そもそも間違った使い方をしている時点で問題なのですが・・・。
実装方法をもう一度見直してみます。
WebClientやHttpWebRequestの場合は今の使用方法で問題ないというのも確認できました。
根拠も含めて、丁寧なご指摘ありがとうございました。
【.NET5.0について】
現行のPCOTは.NET4.5.2を使用していますが、古い.NetFrameworkを使用している理由として
PCOTのソース説明にも書いた通り、利用者に.NetFrameworkのインストールを強いるのを嫌った為です。
その他の理由としてはこちらの環境の問題でWindows10より前のOSで動作確認できないのもあります。
あと、以前高DPI環境で画面のレイアウトがズレるという問題をご指摘頂いた際に.NET4.7.2で試してみたところ
画面サイズを固定している箇所(グリッドの列含む)が相変わらずズレてしまう問題が発生した為、諦めた経緯があります。
.NET4.7.2が悪いのか私の対応方法が悪いのかは分かりませんが、もしそちらで上記の問題を解決できる目途が建った場合は
どこかにソースコードを公開して頂けたら、公式で取り込む事も検討したいと思っています。
長々と書いてしまいましたが、HttpClientの件は早急に対応させて頂きます。
改めて有意義なご指摘ありがとうございました!
お返事ありがとうございます!
当初は.NET 5.0専用にするにつもりでしたが、.NET Framework 4.5.2と.NET 5.0の両方で同時にビルドされるVisual Studio 2019のソリューション/プロジェクトファイルを作成しました。
※.NET 5.0でビルドされた実行ファイルは高DPI対応版になります。
v1.1.7をベースに作成しましたので、ぬるっぽさんにお渡ししたいのですが、どうしましょう。
おぉ、素晴らしいです!
GitHubのアカウントをお持ちでしたら、そちらに上げてもらいたいですが・・・
アカウントがない場合は私と同じです。お友達になりましょう。
冗談はさておき、見られて困るのでなければどこかのアップローダーにアップして貰う感じでしょうかね?
Twitterをやっているのであれば、フォローしてくださればDMを受け取れるのでご連絡頂けたら私のOneDriveにアップロード用フォルダを作ってそこにアップして頂いてもいいんですが・・・。
ちなみに.NET5.0が入っていない環境で.NET5.0の実行ファイルを実行するとどうなりますか?
あとすみません、簡単なテキストでいいので何をどうしたかの説明を同梱して頂けると助かります!
お返事遅くなりました。
Twitterフォローさせて貰いました。>@miwakunoshippo
GithubにPrivateリポジトリを作成して変更点、.NET5.0起動時メッセージ、ソース一式コミットしています。