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/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は座礁のこと。
つまり身動きが取れなくなることなんだよ。
それは自分で自分を待つケースに限らない。
2021/10/19(火) 18:47:21.34ID:mUw6gLDG0
勘違いも甚だしい
2021/10/19(火) 19:18:16.00ID:F0Ya2cseD
>>801
やはり勘違いしてるな
804デフォルトの名無しさん (ラクッペペ MM7f-xEoX)
垢版 |
2021/10/19(火) 19:26:02.78ID:NUYGeUrwM
デッドロックとは
対策に徹夜で3日以上かかるバグの事を指す
2021/10/19(火) 19:32:00.07ID:8pYZM1g+M
>>801
英語の元の意味と業界用語が違うなんていくらでもあるぞ
NIC の promiscuous (mode) とか調べてみw
2021/10/19(火) 21:14:28.92ID:dVCJCghn0
そもそも名前付きパイプって同一のストリームを読み書き両用でつかえるのか?
2021/10/19(火) 22:15:54.02ID:P+gkhAFH0
組み込みの資格の問題集では、
デッドロックは、資源のたすき掛け

タスクA が、資源X, Y の順にロックして、
タスクB が、資源Y, X の順にロックする

ここで、どのタイミングでデッドロックが起きるか、という問題
2021/10/20(水) 02:56:42.16ID:KEjGoucL0
rubyガイ、お前には聞いてない
しゃしゃるな
809デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 09:16:14.30ID:OEiI06HQa
>>804
発見に3日以上
対策は3秒
だろ
810デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 09:18:08.43ID:OEiI06HQa
>>806
OK
2021/10/20(水) 09:47:41.27ID:JvBM85mK0
最初から説明すると、やりたいのは.NET5のWorkerServiceで作成したWindowsサービスの状態をタスクトレイに表示することです。
Windowsサービスから直接タスクトレイに表示する事が出来ないということで、タスクトレイ表示用のフォームアプリを作成。
両者間でプロセス間通信を行い、フォームアプリからWorkerServiceへの問い合わせという形では問題なく通信できました。
※フォームアプリ:送信専用/WorkerService:受信専用

ただ、WorkerServiceの状態が変わるのは希なことなので、フォームアプリから頻繁に問い合わせるのは無駄が多いので、
フォームアプリからWorkerServiceへの接続以外はWorkerService側からのPush通信を行うように修正しました。
フォームアプリ:受信待機、WorkerService:送信。WorkerService:受信待機、フォームアプリ:送信のテストは正常に終わりました。
送信はいつ発生するかわからないため、双方を受信待機にしたところ、その状態では送信が出来ません。
受信待機状態で無ければ送信出来るのは確認しているので、受信待機を解除出来れば送信出来ると考え、その方法を探している途中です。

>>806
上に書いているとおり、受信待機状態で無ければ送信できます。もちろん、受信待機状態で相手から送信されれば受信できます。
実際にテストし、確認しています。
2021/10/20(水) 10:34:02.67ID:JvBM85mK0
>>796
コールバック先ではなく、送信用関数の頭でキャンセルするようにしています。
BeginReadの返り値を保存。キャンセルしたい場所でEndReadの引数に渡すようにしているのですが、EndReadを呼び出すとそのままだんまりです。
なので、なにか手順でもあるのかと思い、検索をかけたのですが解決法がわからないため、ここで質問しました。
813デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 10:39:51.36ID:OEiI06HQa
>Windowsサービスから直接タスクトレイに表示する事が出来ない

サービスの登録で「デスクトップとの対話を許可」してあれば表示出来ますよ?
2021/10/20(水) 10:42:48.21ID:Es2OjjC60
送信がちゃんと動いてるならそこ変える必要なんてないし
送信と別に受信用の接続つくれば解決するんじゃ
2021/10/20(水) 10:51:47.47ID:JvBM85mK0
>>813
.NET 5 ではサポートされないと、どこかで読んだ覚えが・・・
参考になるWebPage等あれば教えてください。
直接やった方が単純なので・・・
816デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 11:37:20.61ID:OEiI06HQa
Windows 管理ツール
→ サービス
サービス名で右クリックしてプロパティ → ダイアログ → ログオン
「デスクトップとの対話をサービスに許可」にチェック

HKLM\\SYSTEM\\CurrentControlSet\\Control\\Windows\\NoInteractiveServices
0にする必要があるかも
2021/10/20(水) 14:16:23.47ID:JvBM85mK0
>>816
教えていただきたいのは設定の方法ではなく、.NET 5のServiceWorkerでタスクトレイにアイコンを表示する方法です・・・
2021/10/20(水) 15:27:59.69ID:G+Qou/Ta0
さすがにサービス作るのは面倒だから同一プロセス内で試しただけだけど
BeginRead中に普通にWriteできたよ
NamedPipeXxxStreamをnewする時にPipeOptions.Asynchronous指定してる?
819デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 15:55:53.51ID:5SoWglAaa
https://atmarkit.itmedia.co.jp/ait/articles/1704/11/news015.html
2021/10/20(水) 16:10:12.00ID:JvBM85mK0
>>818
していませんでした。
サーバ、クライアント双方にオプションを指定し、Stream.Read中にStream.Writeが可能なことを確認しました。
ありがとうございます。
2021/10/20(水) 17:19:49.71ID:VKVb6/esd
前提をすっ飛ばすと突拍子もない解決手段を思いつきそれを実現しようとしてしまい四苦八苦する典型例みたいですね
2021/10/20(水) 18:07:28.07ID:jvdlGdZPa
レジ袋有料化みたいな話だね

ただ、批判する意図はないけど、位置の概念がないストリームなら普通「全二重」であるはずだ、
ってのはちょっと考えれば気づけたはずじゃなかなとは思う
2021/10/20(水) 18:43:57.39ID:qS9LysT00
出来ることを出来ないと思い込んじゃったとこから始まってるんだな。
サービスからのタスクトレイアイコン然り、Streamのリードライトも然り。
2021/10/21(木) 11:54:41.56ID:JzKHPePF0
>位置の概念がないストリームなら普通「全二重」であるはずだ
お前の勝手な思い込みだとしか思えん
825デフォルトの名無しさん (アウアウウー Sacf-Avck)
垢版 |
2021/10/21(木) 12:25:32.61ID:8qSe0EAma
イキり馬鹿には「普通は」って文字が読めないんだな
2021/10/21(木) 13:30:46.89ID:E6Iq4yprD
>>822
その方法で判断してるなら既にいくつかバグ孕んでそう
2021/10/21(木) 14:41:10.46ID:hTdTaobFa
r/wを排他的にせざるをえない必然性や制約が存在しない限りわざわざ排他的にする合理性はないというだけの話。
馬鹿じゃないの。

というか、例えば2.0までのUSBは物理層が「半二重」だが、上位の層ではそんなことを
意識する必要はないようにしてある。

そんな制約を意識する必要があったらやってられないからだ。
必要もないのにそんな制約を課す馬鹿がどこにいる
2021/10/21(木) 16:22:37.02ID:vKSzbwpZ0
双方向に通信できるか、一方向にしか通信できないことと、全二重半二重は別の概念じゃない?
双方向通信になって初めて半二重なのかと考える必要があるし、そもそもIPCをOSのAPIで使ってるときにそんなにシビアに考えることかな?という気がする
2021/10/21(木) 16:25:27.19ID:AAqgo5mm0
双方向のプロセス間通信なら、パイプじゃなくてIPC使ったほうが楽じゃね?
2021/10/21(木) 22:48:54.75ID:JzKHPePF0
>>825
お前の言う「普通」はお前の思い込みだって指摘だが、普通が読めないとかどっから出てくる話だ

そもそも位置の概念と双方向か片方向かは関係ないし
双方向のストリームは全2重であるべきだって意見なら理解しないではないが
お前の希望が普通に実装されてるとは限らんのだよ
2021/10/22(金) 03:27:01.26ID:OMPuRiy7a
白鳥は普通白い、というのは全称命題(黒い白鳥はいない)ではない。
イキり馬鹿って本当に馬鹿で笑えるねw

ファイルのように位置の概念があるストリームでは排他的にr/wされたら困るだろうw
馬鹿じゃなかろうかマジで
2021/10/22(金) 03:28:52.19ID:OMPuRiy7a
× 排他的に
〇 非排他的に
2021/10/22(金) 03:58:09.76ID:OMPuRiy7a
最近ヤフコメの規制が話題になってるけど、
webくんだりで他人に居丈高な態度を取る奴の動機の源泉(うだつ上がらない)
なんて見え透いてるよねw

別にうだつ上がらないのは悪くないが(俺もそうだし)
いい歳こいてそういう自分の動機を自覚できないのも、他人から自分がどう見えているかを
意識できないのもかなり痛々しいよねえw
2021/10/22(金) 07:26:26.05ID:fpd3u34i0
括弧の中はコーラスかな
2021/10/22(金) 08:40:47.54ID:sYXSwuhS0
うだつってどこで売ってるの?
2021/10/22(金) 08:47:26.63ID:oVr78/SWM
>>831
普通のファイルのシークしながらの読み書きなら困る、はわかるんだけど、
それを一般化して、位置の概念のあるストリームで「普通」成り立つべき性質なのかよくわからない。
後学のために、いい例を教えてくれないか?
2021/10/22(金) 11:28:17.10ID:J+jDEcsH0
そもそもファイルストリームって(単一ファイルでは)双方向通信に使えるものじゃないから、
全二重という思い込みがよく分からないし
ワッチョイ的にデッドロックの意味勘違いしてた人っぽいし
全般的に用語の使い方がいい加減な人なんだろうなと思った
2021/10/22(金) 11:54:11.71ID:V0jARYip0
ファイルストリームって、追記モードで複数オープンされたファイル扱えないのか?
2021/10/22(金) 12:08:46.46ID:V0jARYip0
双方向のストリームなら、非排他的にアクセスされると困るという意見ならまあ理解はできる

排他的とか、自分以外のアクセスの話で、自分が全2重でアクセスできるかどうかとは無関係だがな
2021/10/22(金) 12:47:13.67ID:V0jARYip0
>>837
なるほど
全2重/半2重から排他/非排他の話になってるのは
話をずらそうとしてるんじゃなくて自分の中でもちゃんと区別できてないのか
2021/10/24(日) 03:48:37.41ID:Ebis89vva
>>837
俺が用語を正確に使ってないのでなく君に読解力がないだけじゃないのかな。

俺はファイルストリームは「半二重」だと言ってるんだよ。わざわざ括弧を付けて。
括弧を付けているのは全二重/半二重という用語は普通はストリームを対象にした
用語ではないからだ。
2021/10/24(日) 03:54:05.25ID:Ebis89vva
というか、「必要のない制約をわざわざ課す馬鹿っているんですか?」
っていうのが俺の主張の本質なんだけど、その辺も含めて文脈読めないにも程があるね。
2021/10/24(日) 06:21:08.23ID:4lHZz/Ub0
ああ、ほんとに双方向か片方向かと全/半2重の区別がついてないのね
2021/10/24(日) 10:19:03.31ID:BecJ+B2qa
全二重と半二重は鉄道で例えれば単線と複線の違いだよ。
RS485通信は半二重通信になるけどな。
2021/10/24(日) 12:15:38.06ID:kMf1w+hQa
>>843
またそれか。
片方向の文脈であれば全二重/半二重の区別は意味を持たない。
区別がついてないのは君じゃないの。マジで大丈夫か
2021/10/24(日) 12:24:26.91ID:kMf1w+hQa
だいたい双方向とか片方向とかいう話がどっから出てくるのw
意味がわからないよ

だから、必要もないのにr/wを排他的にする制約を課す馬鹿っているの?って話をしてるんだけど
2021/10/24(日) 12:31:01.70ID:kMf1w+hQa
次の展開予想すると、>>843みたいな人はたぶんそれでも片方向/双方向の違いに固執して
「片方向っていうのは片方だけが能動的にr/wすることをいうんだ」みたいな話になるんだろうねw

だから、だから何だよw
この文脈でそれ重要ですか?
2021/10/24(日) 15:32:33.07ID:4lHZz/Ub0
ああ、排他的ってのは自分自身からのリードとライトについて言っているのか
つまりお前の中では、全2重=非排他的 半2重=排他的 ってことなのね
で、片方向っていうのは片方だけが能動的にr/wすること だと

まあこれからも独自路線を行ってくれ。できればひっそりと
2021/10/24(日) 16:20:34.86ID:qOtMLiXha
ファイルストリームに半二重ないやろ?
途中で方向変わるのか?
全二重もないし。
2021/10/24(日) 16:40:45.22ID:ju8sH4Lg0
誰かこいつらの脳幹をdisconnectしてくれや
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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