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/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は座礁のこと。
つまり身動きが取れなくなることなんだよ。
それは自分で自分を待つケースに限らない。
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
レジ袋有料化みたいな話だね

ただ、批判する意図はないけど、位置の概念がないストリームなら普通「全二重」であるはずだ、
ってのはちょっと考えれば気づけたはずじゃなかなとは思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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