C#, C♯, C#相談室 Part94

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 935f-5Uxj)
垢版 |
2019/03/20(水) 18:57:36.47ID:ZZcTomnN0
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2021/09/01(水) 17:01:44.97ID:xCOolefd0
>>700
もしかして、.NET Framework4.xで作ってある既存のプロジェクトを対象のフレームワークの切り替えだけで.NET5にしようとしてるの?
それは無理だから、>>698が挙げているページにあるように移植作業が必要だよ
2021/09/01(水) 18:54:29.18ID:Bk82infv0
>>701
そうなんですね、勉強になりました、ありがとうございます。
2021/09/02(木) 06:21:25.28ID:CGg78V2s0
それほど複雑じゃ無い(いかにも企業ユースなフレームワーク使ってるとかで無い限り)プロジェクトなら.net frameworkのソースそのままで.net5としてコンパイル出来る。

ついでにいうとこういった複雑でないものは、.net frameworkのまま、.net5から参照可能。
2021/09/02(木) 06:29:18.68ID:CGg78V2s0
一方、net frameworkから.net5を参照するのは無理。
この場合既存部を.net frameworkのままで通したい場合は、
.net5の方は薄くCOMインターフェースでうっスーいラップ挟むのがいいかな。
2021/09/02(木) 14:23:42.13ID:ffn82dhU0
なんでそうぶち上げては切り捨てるを繰り返すのかねMSは
2021/09/02(木) 14:34:39.39ID:uXRFOUT10
延々と同じものを使われたら商売にならないから
707デフォルトの名無しさん (エムゾネ FF22-4thN)
垢版 |
2021/09/02(木) 16:20:15.54ID:4vWPiFe2F
ぐぐーるもたいがいやで
2021/09/02(木) 18:31:28.55ID:FL5AB1qC0
アップルも切り捨て大好きだぞ
709デフォルトの名無しさん (ラクッペペ MM66-sNgg)
垢版 |
2021/09/02(木) 18:43:20.96ID:95p8ZRX9M
WINUIも.NET5も遅いし機能少ないくせに
2021/09/03(金) 00:29:45.00ID:AHipKBXs0
初心者用書いたのですが返答こなさそうなのでこちらに書きます(マルチすいません)

GoogleChromeにあるイメージファイルをデスクトップにドラッグすると大抵の場合イメージファイルを保存できますが
これをPictureBoxに直接ドラッグしてイメージを表示させたいです
※URLを取得してからのダウンロードだとjavascriptなどで読めないイメージが多いので他の方法を探しています

これはクリップボードを経由してるんでしょうか?もし経由しているとしたらクリップボードのフォーマットは何を使ってるんでしょうか。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.dataformats?view=net-5.0
それ以外ならどういう仕組みなんでしょうか、何か手掛かりになるものがあれば助かります。

もし無理なら特定フォルダ作り定期的に監視して増えたファイルをロードしようと思いますが
できればコントロールにドラッグしたいです、よろしくおねがいします。
711デフォルトの名無しさん (ワッチョイ 6754-Sfec)
垢版 |
2021/09/03(金) 02:23:45.36ID:r8mmW0/q0
https://github.com/davidegironi/advanceddatagridview/releases/tag/1.2.x.3
上記の、AdvancedDataGridViewを使っています。

フィルタリングする為に、
@カラムヘッダークリック
ATreeView表示される選択肢の内、表示しない項目のチェックを外す。
までは動くのですが、選択内容を変更するために、再度カラムヘッダーをクリックすると、Aで非表示化した項目が消えるので、
一度フィルタークリアするしかなくなります。

int型・string型データのカラムだけで発生します。
公式サンプルも同じ状態なのですが、何が原因でしょうか?
2021/09/03(金) 09:05:37.92ID:PQRWg2pe0
>>710
https://stackoverflow.com/questions/8442085/receiving-an-image-dragged-from-web-page-to-wpf-window
WPFっつってるけどやってることはWinFormでも全く変わらんね
2021/09/06(月) 08:50:27.01ID:h/8uTFD00
ref structの強制using欲しいと思うのは俺だけ?
C++みたいな暗黙でデストラクタ呼ばれる方式じゃなくてちゃんとusing書かないとコンパイルエラーになる感じのが欲しい
2021/09/06(月) 10:49:07.22ID:hEa6z0ew0
>>712
先に質問してたふらっとの方で既に解決しているがそれじゃダメだ
2021/09/06(月) 16:05:09.28ID:eiNUFGv40
マルチで質問しっ放しか
2021/09/07(火) 00:12:57.46ID:jZhA4bAr0
>>713
コード分析しろ
2021/09/07(火) 04:08:51.28ID:q85I47vR0
自分でanalyzer書けば警告でもエラーでもだせるよ
そこまでやってる人がどれほどいるかは知らんが
2021/09/07(火) 08:29:58.90ID:e368Ab820
環境依存だと他人に使わせるのはちょっと身が引けるな
disposable ref structとでも書いたら絶対Dispose実装しないといけないし絶対using宣言しないといけないってなれば多少アンセーフな機能も公開しやすいんだけど需要は無さそうだな
2021/09/07(火) 12:19:24.33ID:I20R26Ho0
>>718
気が引ける、な。
2021/09/09(木) 17:34:11.61ID:qrAI1q0R0
50,000レコード、テキスト換算30MBある(想定最大値)JSONデータを取り回すのに向いている、ローカル用のDBエンジン(SQLiteのような)って何かありますか?
出来れば、Xamarin.Forms(Android)でも動くものを探しているのですが、他の方がどうやっているのか知りたいです
2021/09/09(木) 22:13:50.14ID:AWFfXCnC0
Redis がベストやな
2021/09/10(金) 00:51:31.54ID:Hha8Yi5K0
>>720
LiteDB。ずっと使ってる。
Linqで引けるから凄く便利。
2021/09/10(金) 09:13:28.67ID:GizC5utx0
>>722
LiteDB、良さそうですね。ちょっと試してみます。

>>721
俺の知らない別の使い方とか同じ名前の別のRedisがあるのかと思って1時間ググって見たけど、わからんかった。
Redisで、SQLite的な組み込みの使い方があるの? 比較したいので具体的なところ教えて欲しい……
2021/09/10(金) 12:03:33.02ID:cGWG4Dd90
つか5万レコードで何するかしらんが、そのままJsonで持つとかないわ
2021/09/10(金) 18:39:49.98ID:Q85sVIDV0
読み込みだけなら…
2021/09/10(金) 20:30:22.77ID:VM7twAvm0
条件後出しする馬鹿は死ねば良いのに
2021/09/11(土) 10:38:13.01ID:vIInvTaz0
>>724
あるんだなそれが
GTA5はそうしてたし
2021/09/11(土) 11:53:02.01ID:xP5kxsti0
5万レコードぐらいの参照系で頻度が高いものだと結構あって、結局メモリにのせたりしないか?
どうせメモリにのせるし、となると、JSONでもなんでもいいし。
LiteDB推したけど、そういう意味ではRedisはそこまで的外れだと俺は思わんかったぞ。
2021/09/12(日) 14:33:36.21ID:Rk6Iyibj0
ソースジェネレーターの開発効率悪すぎやろ
マクロと違って受動的な生成できるから便利だけど個人開発程度の規模だと返って遠回りになるな
2021/09/12(日) 16:10:35.48ID:fbrsRXQN0
ノウハウが溜まれば効率よくなるんじゃね?
2021/09/12(日) 17:45:44.97ID:r8PDzNW10
ウハウハだな
2021/09/12(日) 22:24:05.20ID:AyzBS9aH0
>>729
どうすれば良くなると思う?
733デフォルトの名無しさん (ワッチョイ ea6a-dGLa)
垢版 |
2021/09/12(日) 22:29:29.32ID:LdHcNCka0
ソースジェネレーターって何のこと?
2021/09/12(日) 23:35:28.52ID:fbrsRXQN0
https://docs.microsoft.com/ja-jp/dotnet/csharp/roslyn-sdk/source-generators-overview
2021/09/13(月) 02:03:08.04ID:Dz4DY8v70
ああ、Roslyn関係ね。了解ありがとう
2021/09/13(月) 09:23:25.05ID:tAtNAwkK0
>>732
StringBuilderオーバーライドしたSourceBuilder的なクラスがあればミスも無くなってマシになるんじゃないか
もしくはUtf8JsonWriterと同じ感じでもいいな
自分で作れって話なんだけど、ソースジェネレーターってWinFormsのInitializeComponent筆頭に内部では元々あった訳だしMS社内ではSourceBuilder的なクラスは既にあるはずだから公開されるんじゃないかと期待してる
2021/09/13(月) 22:03:41.13ID:Dz4DY8v70
T4テンプレートと組み合わせられないか?(適当)
738デフォルトの名無しさん (ワッチョイ b67c-2Q8u)
垢版 |
2021/09/16(木) 19:12:10.42ID:hnfTT3D30
WebView2でどんなページ開いてもスクロールバーが表示されずページの下の方が見ることができない。
htmlやcssでスクロールバーを非表示にしていないから、WebView2の設定を探してみたけど見つからず。
スクロールバーを表示させるにはどうしたらいいですか?
2021/09/16(木) 20:03:17.64ID:uiNLezeY0
WinForm? WPF?
WPFだと親子関係によっては親が子であるWebView2のレイアウト領域無限に取ったりしてるとか
とりあえずWinFormでもWPFでも特にプロパティとかいじらず普通にブラウザとしてのスクロールバーは出る
740デフォルトの名無しさん (ワッチョイ b67c-2Q8u)
垢版 |
2021/09/16(木) 20:30:28.11ID:hnfTT3D30
>>739
WinFormです。
普通に出るのですか…何も出ないので残念です。
2021/09/16(木) 21:01:08.74ID:yaf4gWdF0
親コントロールからはみ出してるんかな
WebView2側のDockを有効にしたら?
2021/09/16(木) 21:38:21.29ID:xijkbl3u0
まさに今WebView2を使ってるところだけど普通にスクロール出るね
>>741が正解な気もするけど
743デフォルトの名無しさん (ワッチョイ 9724-IhC7)
垢版 |
2021/09/17(金) 12:45:26.99ID:cxQX6Vfo0
C#のComInterfaceってちょいちょい頭おかしいな
これとかなんやねん

HRESULT IEnumFORMATETC::Next(ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched);

IEnumFORMATETC.Next(int celt, FORMATETC[] rgelt, int[] pceltFetched);

C#風にラッピングするなら普通はこうやろが
int Next(FORMATETC[] rgelt, ref int pceltFetched); //Span<FORMATETC> rgeltなら尚良し
744デフォルトの名無しさん (アウアウウー Sa5b-hED7)
垢版 |
2021/09/17(金) 13:49:09.55ID:oDWWsmOUa
自動機械で生成したっぽいな
745デフォルトの名無しさん (ワッチョイ 171d-QiSa)
垢版 |
2021/09/17(金) 14:53:12.40ID:J/w/zJeW0
WEBフリーランスで年収1000万円超えないのはどう考えてもおかしい
https://www.youtube.com/watch?v=LoXe8iFAsVs
エンジニアは技術力磨きすぎても金になりません
https://www.youtube.com/watch?v=lM7bc6vX-3M
エンジニアはお金を追求してはいけないという年寄りを論破してみた
https://www.youtube.com/watch?v=qJHCmxFv718
エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】
https://www.youtube.com/watch?v=3YwyYSj-k2s
派遣エージェントの言う事は9割ウソである理由【カモられない方法】
https://www.youtube.com/watch?v=8DxQFLAuFqo&;t=231s
IT業界のヤバすぎる落とし穴5選
https://www.youtube.com/watch?v=WPPCJ4o-mpA
絶対にエンジニアになってはいけない人とは【ハイクラス人材】
https://www.youtube.com/watch?v=kKUC7rZRUtc
【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて
https://www.youtube.com/watch?v=fTG-eMpwhCg
プログラミングスクールを否定する老害どもについて
https://www.youtube.com/watch?v=K2SN-Rr0PgY&;t=506s
2021/09/22(水) 06:13:29.41ID:4Ss0IIt3M
C#向けのMIDLコンパイラが粗末なんだと思う
2021/09/22(水) 23:29:53.28ID:xBbUkBcb0
時代はCsWin32
2021/09/27(月) 12:05:22.09ID:KmbMbzSx0
public Foo<T>(byte[] dat) where T : new() { 〜 };
という定義の関数があります。通常は
var IntData = Foo<int>(dat);
とやって、バイト配列からインスタンスを作成するのですが、Tの部分をType型の変数を使ってインスタンスを作成したいのです。
上記の例でいうと
int intValue = 0;
var t = intValue.GetType();
var IntData = Foo<t>(dat); // 型ではなく変数なのでエラーとなる
とやりたいのです。

なにか方法はないでしょうか。
2021/09/27(月) 13:52:24.89ID:SFJimoDq0
ジェネリック使わないように定義を変えれば?
2021/09/27(月) 14:32:14.74ID:0+Ka2zog0
decltype(t)
2021/09/27(月) 14:38:26.77ID:0+Ka2zog0
すまんc++と間違えた
2021/09/27(月) 15:00:33.89ID:yT+OT+660
許さん。
人世の生き血を啜り
不埒な悪行三昧
2021/09/27(月) 15:54:49.55ID:KmbMbzSx0
>>749
説明を簡易にするためにintにしましたが、実際はclass/struct定義を指定して、
byte配列との相互変換するための自作ライブラリです。
クラス内クラスといった入れ子状態でも動くようにするために、内部から自分自身を
再帰呼び出しするのに、Type型の変数からジェネリックでの呼び出しが出来るように
したいわけです。
2021/09/27(月) 15:57:14.59ID:/3k3jyoNa
>>748
これならできた
static class Extensions
{
  static T Foo<T>(this T x, byte[] dat ) where T:new()
  {
    return new T();
  }
}

型推論はコンパイラの機能。
実行時に決まる型をコンパイラに推論しろってのは無理筋
2021/09/27(月) 16:15:20.36ID:BlBnXHbl0
危険性を理解した上でBinaryFormatter使え案件では
2021/09/27(月) 16:18:23.20ID:rcvaLLYgM
>>754
どこから実行時なんて出てきたんだ?
>>750が書いてるdecltype相当の機能が欲しいって話だろ
俺も欲しいわ
2021/09/27(月) 16:33:19.87ID:NYWmPD2Y0
C#の標準ライブラリにもよくジェネリック版関数とType版関数があるようにそれ真似ればええだけやろ
後からジェネリック版が続々と追加されたことからも分かるようにType版はリフレクションに頼る羽目になるのでパフォーマンスに劣るがな
そういやネットワークメッセージをルーティングするにあたってそのたびにDynamicInvokeしてるバカなコード書いてる奴思い出したな
2021/09/27(月) 16:36:51.40ID:rcvaLLYgM
↑頓珍漢すぎるバカw
2021/09/27(月) 16:41:12.52ID:/3k3jyoNa
>>756
そっちこそ何を言ってんの。
ジェネリックの型テンプレートはコンパイル時に確定している必要がある。

それをType型の変数tの値(当たり前だが実行時に決まる)からコンパイル時に
推論できるの?
2021/09/27(月) 16:56:38.77ID:J3rlWY70M
>>759
>>748には
> int intValue = 0;
> var t = intValue.GetType();
> var IntData = Foo<t>(dat);
って書いてあるけどやりたいのは
int intValue = 0;
var IntData = Foo<decltype(intValue)>(dat); // もちろんC#にはdecltypeはないからエラーになる
だろ
コンパイル時にintValueの型はわかってるから原理的にはできるはず
2021/09/27(月) 16:59:12.82ID:6TsnNU9s0
>>748
普通にもう一段ジェネリック関数でラップしたらいいだけじゃん
static T Foo<T>(T value, byte[] dat) where T : new() => Foo<T>(dat);

int intValue = 0;
var IntData = Foo(intValue, dat);
2021/09/27(月) 17:12:05.00ID:J3rlWY70M
まあそうなんだけど値を使わないのに引数に指定するのもなんか気持ち悪いし
※ 個人の感想です
2021/09/27(月) 17:19:29.24ID:6TsnNU9s0
>>762
var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い
GetType()はオブジェクトヘッダからタイプ情報を抜き出すっていう実行時処理だからそれこそ求めてるものとは全く違うと思うけどな
逆にジェネリックは完全にコンパイル時計算なので>>761とか>>754ならほぼ確実にインライン展開される
2021/09/27(月) 17:25:05.23ID:6TsnNU9s0
それに下手したらintに対してGetType()するとmalloc(sizeof(int32_t) + sizeof(void*) * 2);みたいな処理が内部で走って糞効率悪いぞ(Boxing)
2021/09/27(月) 17:41:25.60ID:DH+C27O00
戻り値をoutで返せば
2021/09/27(月) 17:42:27.32ID:J3rlWY70M
>>763
> var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い
まあ気持ち悪さの基準は人によって違うから、お前はそうなんだろうね
2021/09/27(月) 17:46:34.83ID:OckC1gs8p
よしわかった!
リフレクションでジェネリックメソッドを生成しよう!
2021/09/27(月) 17:47:27.75ID:KmbMbzSx0
>>755
後出しですみません。
既存の機器と通信するためにByte配列との相互変換なのですが、
BCDとか、エンディアンの指定があるんです。
なので、BinaryFormatter は使えないんです。

>>761
なんとかなるかな?
ちょっと試してみます。
アドバイスありがとう。
2021/09/27(月) 17:49:12.35ID:6TsnNU9s0
>>766
引数指定しなくていいバージョンも754が書いてくれてるだろ

int intValue = 0;
var IntData = intValue.Foo(dat);
2021/09/27(月) 18:13:44.25ID:J3rlWY70M
>>769
申し訳ないけどそれもっと気持ち悪いわw
1週間後にそのコード見て一瞬何してるのか戸惑う自信がある
2021/09/28(火) 15:45:06.15ID:MCa79m/M0
久しぶりにC#で書いてるんで勘違いしてたら悪いんだけど
var str = "abc";
で、strがstring?になるんだけど前からこうだっけ?
非null型にするには string str って書かないといけないんだっけ?
2021/09/28(火) 17:08:52.72ID:SC9lU+iw0
今でもそうじゃない。
Null許容オプションを変えればそうなるが、デフォルトは無効。
2021/09/28(火) 20:55:13.11ID:v2L5F78s0
C#8.0以前と昔と同じ動きになるようにしてるからオプションデフォだと?付けてるんだぞたしか
2021/09/29(水) 03:06:23.18ID:hXKTXicB0
>>748
Reflection使えばなんとかなるんじゃね
https://devlights.hatenablog
.com/entry/20081107/p2
2021/10/05(火) 14:17:33.11ID:/KAzPTlo0
unsafeでゴリゴリするのとNETの中間言語(IL)を直書きするのってどっちが速くなるのかな
unsafeでゴリゴリも結局ILに直されるんだよね?
2021/10/05(火) 14:22:47.33ID:NZoK2SbN0
そらちゃんと最適化されたものがかけるならILじゃないの?
規模次第だけど大抵はunsafeが早くなると思う
2021/10/06(水) 20:28:42.14ID:E0v4aPqh0
ネットワークドライブ上のNASに映像ファイルをコピーする処理をTaskで非同期処理を
おこなっているのですが、たまーにネットワークがきれるのかNASの問題なのか
転送がとまったきりになります

CancelTokenでファイルごとにキャンセルは入れられるよう進捗ウィンドウを作ってるのですが
File.Copyが1つのファイルで走り始めてから止まり、Exceptionも吐かないので
中断処理入れようにもどうにもならず

とりあえずApplication.Exit()でアプリごと落としてお茶を濁しているのですが
なにかうまい方法ありますか?
2021/10/06(水) 21:02:20.21ID:2LxqHeEp0
なす
2021/10/06(水) 21:37:29.69ID:dgJN1SIT0
すし
780デフォルトの名無しさん (ワッチョイ ff5b-2jfQ)
垢版 |
2021/10/06(水) 21:47:22.32ID:le4x28/F0
FileCopyExならキャンセルできるとか
https://social.msdn.microsoft.com/Forums/vstudio/en-US/45e0254c-c28f-48ad-8aac-172a903227a7/cancel-a-filecopy?forum=clr
2021/10/06(水) 23:26:50.78ID:9/4lkKr3a
>>777
問題を良く理解してないけど
まあ生ThreadならAbortできるね。

昔はデッドロックするバグがあるネイティブdllの関数呼ぶときにはこれ使ってた。
さすがに今時は別の方法が用意されてるはずだと思うけど
2021/10/07(木) 04:29:01.91ID:NGhNP/TI0
HOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMO
783デフォルトの名無しさん (ワッチョイ 635f-GJBa)
垢版 |
2021/10/08(金) 20:11:01.95ID:TjcV2IEr0
>>771-773
これすごい機能だな
.NET 6から新規プロジェクト作成するとデフォルトで有効になると書いてある
引き継いだから知らなかった
2021/10/17(日) 11:37:08.06ID:h6ZKeWCX0
>>780 >>781
レスありがとうございます 返信遅くなりました
参考にいろいろやりましたが結局FTPで切断して中止させる方が簡単で
送信データ量などの進捗が拾えて残り時間の計算も簡単なので
NASとFTPでやりとりすることに落ち着きました
2021/10/18(月) 18:50:18.68ID:+thFiXiN0
MSの.NETチームってアジア人少ないのか?
表に出てくるメンツ見てると黒人とかラテンアメリカンはちょいちょいいるのにアジア人がほぼいないんだが、
アメリカのIT企業って総じて黒人よりアジア人の方が従業員比率高いはずなのにおかしいだろ
ポリコレソードで一刀両断して良いか?
2021/10/18(月) 21:33:52.17ID:PYlrOq+m0
何のために?
2021/10/18(月) 22:56:12.18ID:Yxn1i5HN0
>>785
キモッ!
2021/10/19(火) 09:12:00.45ID:dghFXsSl0
ブリザードの闇を知ってからはアメリカのIT業界も色々とやべぇんだなとは思った
ああいう闇があるからこそ日本人からは到底理解できないようなポリコレが流行るのも致し方ないと思えるようになったわ
2021/10/19(火) 10:22:17.02ID:PEqeSIiy0
Streamで非同期のreadを行っています。Stream.BeginRead(〜);
このBeginReadをキャンセルするにはどうすれば良いのでしょうか。

通常の読み込みだと、BeginReadで指定したコールバック先でStream.EndRead(〜);を実行するのですが、1バイトも受信していない場合、EndReadを実行すると待ち状態になってしまいます。
2021/10/19(火) 10:44:59.71ID:cm6tlOC00
StreamをDisposeすればEndReadで例外が出る
2021/10/19(火) 10:55:17.24ID:PEqeSIiy0
>>790
BeginRead をキャンセルしたいのは、同じストリームに出力を行いたいためです。
なので、Streamは破棄できません。
2021/10/19(火) 14:36:25.49ID:P0vvwNoGM
>>789
BeginRead 見たら ReadAsync の使用を検討しろって書いてあるからそうしたら?
2021/10/19(火) 15:15:21.66ID:L0dEwSHfa
Readがデッドロックするような状態なら常識的にはWriteが成功するとは
考えにくい気がするんだけど違うのかなw
2021/10/19(火) 15:37:59.83ID:cm6tlOC00
デッドロックは言葉の使いどころが違うと思う

ReadAsyncでCancellationToken渡したとしても
CancellationTokenSource.Cancelでキャンセルできるかどうかは具象クラスの実装次第なのに注意
.NET Core系は多分問題ないと思うけど.NET Framework系はあんまりサポートしてない印象
2021/10/19(火) 15:58:37.60ID:PEqeSIiy0
デッドロックがどこで出たかわかりませんが、やりたいのは名前付きパイプでのプロセス間の相互送受信です。
2021/10/19(火) 18:22:02.29ID:yAs/qSwO0
>>789
適当なこと書くけど、コールバック先の中でEndReadするのだと、データの読み取りが
完了しない限り実行されないのでダメなのではないかな?
やるならばBeginReadの返却値であるIAsyncResultの内容を保存しておいて、Read
処理をやめたくなったら、保存しておいたIAsyncResultの値をEndReadに指定して
呼び出すんじゃないのかな?
2021/10/19(火) 18:27:10.49ID:5eWBXwewa
>>794
確かに「自分で自分の処理が完了するのを待つ」
状態に陥ることを指す場合が多いけど、
単純に何かの処理が終わらないことや終わらないことも
デッドロックと言うと思うけどね。

>>795
それならReadをキャンセルする必要なんか最初からないのでは?
2021/10/19(火) 18:29:59.71ID:F0Ya2cseD
>>797
デッドロックについて言ってること全部間違ってるように見える
2021/10/19(火) 18:32:13.92ID:q5Q5l1tU0
>>797
言いません
2021/10/19(火) 18:42:34.22ID:mUw6gLDG0
絶対言わない
2021/10/19(火) 18:45:34.17ID:5eWBXwewa
>>798-800
いや言うからw
言うまでもないけどdeadlockは座礁のこと。
つまり身動きが取れなくなることなんだよ。
それは自分で自分を待つケースに限らない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況