C#, C♯, C#相談室 Part98 (518レス)
上下前次1-新
324: (ワッチョイ 9a8b-IJXt) 02/01(土)12:59 ID:dQW8A9nv0(3/3) AAS
>>323
.NETの場合は当然変わるしネイティブでも設定次第では変わり得る
でもそもそもC#やJavaは実行時にその都度機械語を組み立てて行く訳だから、であればその都度埋め込めばいいだけの話
325: (ワッチョイ 4e10-EVp+) 02/01(土)13:11 ID:LNgv56j/0(3/3) AAS
なら結局、ユーザークラスじゃ都度変わりうるってことじゃ?
326: (ワッチョイ a36b-natb) 02/01(土)15:14 ID:XDtywhx90(1) AAS
>>321
それはJITやAOT後のものを見てるからでしょ
JIT/AOT時に異なる相対アドレスに配置できる余地を残すためにC#/ILの段階では固定しない
327: (ワッチョイ 3f79-sZTl) 02/02(日)01:00 ID:U03i5Xdj0(1) AAS
ILの段階で定数になるなら決め撃ちで問題ないだろ
328: (ワッチョイ 7f10-cJwu) 02/02(日)06:57 ID:VLFyjNJe0(1) AAS
ユーザークラスがILの段階で決め打ちになるわけないだろ
329: (ワッチョイ 3f8b-YkUZ) 02/02(日)10:55 ID:NGhOMzti0(1/2) AAS
ユーザークラスだろうが何だろうが別に関係ないし
IL段階で定数になる必要もなくて事実として実行時に機械語になるタイミングで定数化されるんだよ
プログラマがその定数にアクセスする手段がないだけで
330: (ワッチョイ 0fd7-cJwu) 02/02(日)11:18 ID:RNSPFW0b0(1) AAS
実行時にならんと決まらんものは定数じゃねぇ
331: (ワッチョイ 3f8b-YkUZ) 02/02(日)12:43 ID:NGhOMzti0(2/2) AAS
定数ってか再三言ってるけど即値だな
332: (ベーイモ MM8f-VqRJ) 02/03(月)22:15 ID:EtXs2rHFM(1) AAS
インスタンスの型の厳密なチェック typeof (X) == x.GetType() やジェネリック型のチェック typeof (T) == typeof (X) はJITで最適化されるから、
質問者のケースがもしこれらに該当するなら変なハックは必要ない
333: (ワッチョイ 5f90-YkUp) 04/14(月)17:39 ID:XKwEHxpo0(1) AAS
Task<T>を返す非同期メソッドをUIスレッドで呼び出して結果を取得したいのですがどうすればいいのでしょうか?
ConfigureAwait(false)の後やTask.Runでスレッドプール上?で実行されてる
コード内からメソッドをUIスレッドで呼んで結果を取得したいのです
334: (ワッチョイ bfbc-6F/1) 04/16(水)05:53 ID:HaWtxdw70(1/3) AA×

335: (ワッチョイ bfbc-6F/1) 04/16(水)05:58 ID:HaWtxdw70(2/3) AAS
あ、TaskCreationOptionsのTaskが抜けてる…
async Task SetTextAsync()の代わりにasync Task<string> GetTextAsync()だったら
StartNew<Task<string>>にしてvar text = await task.Resultすればいい
336: (ワッチョイ 5f90-YkUp) 04/16(水)07:31 ID:QZV5gxIh0(1/2) AAS
ああ、ありがとうごいます
それっぽいです
要はスレッドプールなどで実行されてるメソッドから
途中でダイアログなどを出してユーザのアクションの結果で更に処理を
進めるかキャンセルするかを決定したかったにです
同期コンテキストは調べたのですがこのPostなんたらじゃできないなと..
TaskSchedulerの方から攻めるのですね
ありがとうございます
337: (ワッチョイ 5f90-YkUp) 04/16(水)07:41 ID:QZV5gxIh0(2/2) AAS
ボタンなど押して非同期メソッドを呼び出す
この時、非同期メソッドには介入が必要な時に呼び出される非同期コールバックを渡せるようにする
呼び出し側で、非同期コールバックとして
ダイアログなどをだしたりする
ダイアログの表示などはUIスレッド実行したかった
こんな感じでした
338: (ワッチョイ 27d7-kxmC) 04/16(水)15:31 ID:yzNZC+ym0(1/3) AAS
BOOL TestFunc(DWORD dwType, LPBYTE pBuffer, LPDWORD pcbBufSize);
dwType:欲しいデータのタイプコード
pBuffer:要求したデータを入れるバッファへのポインタ
pcbBufSize:pBufferが指すバッファのサイズ
例えば↑のような関数をエクスポートしてるアンマネージDLLがあって
DllImportする時のプロトタイプ宣言ってどう書いたらいいんでしょ?
339: (ワッチョイ 27d7-kxmC) 04/16(水)15:33 ID:yzNZC+ym0(2/3) AAS
LPDWORDはref uintでいいのかなと思うけど
LPBYTEとか、それこそLPVOIDだのハンドル系受け取る引数なんかはどう宣言したものかよく解らなくて
340(1): (ワッチョイ bfbc-6F/1) 04/16(水)19:05 ID:HaWtxdw70(3/3) AAS
典型的にはこう
bool TestFunc(uint dwType, byte[] pBuffer, out uint pcbBufSize);
ref/outで宣言すると使いやすいけどNULLを渡せなくなるってのが問題になったりすることもある
ケースバイケースなので一概には言えない
ポインタが絡むなら誰がメモリ確保して誰がどうやって解放するのかを把握してないといけない場合もある
341: (オイコラミネオ MM0b-z3tz) 04/16(水)19:58 ID:VD2CYluqM(1) AAS
第三引数は普通はoutじゃないきがするけど
342: (ブーイモ MM8f-xKSY) 04/16(水)20:27 ID:qW3EbLcWM(1) AAS
outだと呼び出し元からバッファサイズを渡せないな
343: (ワッチョイ 7f10-z3tz) 04/16(水)20:47 ID:JiAmFx7+0(1) AAS
refじゃあかんの?
344: (ワッチョイ 27d7-kxmC) 04/16(水)20:48 ID:yzNZC+ym0(3/3) AAS
>>340
おぉ、ありがとう
ちょっとそれ元に弄ってみるます
345(1): (ワッチョイ ed96-VXNn) 04/20(日)10:42 ID:T4EZ0xEH0(1/2) AAS
refとかout使うと機械語的にはゴミラッパーが生成される
ついでにboolも実はネイティブ型ではないので同様にゴミが生成される
多少可読性や安全性を犠牲にして良いなら
int TestFunc(uint dwType, byte* pBuffer, uint* pcbBufSize)とすればC/C++と遜色ない機械語になる
戻り値はintなので != 0としてbool判定をする手間がかかるけどね
ついでに.NETCore系統で且つ内部でIOなどを行わずに計算量が少なく割とすぐ戻る事が確定している場合は[DllImport("native.dll"), SuppressGCTransition]とすると尚良し
346: (ワッチョイ ed96-VXNn) 04/20(日)10:47 ID:T4EZ0xEH0(2/2) AAS
もしネイティブ側の戻り値がBOOLではなくboolならC#側はbyteにすればいい
boolって実は結構罠だからな
347(1): (ワッチョイ 4954-EnZh) 04/21(月)11:37 ID:ed9AfVbw0(1) AA×

348: (ワッチョイ 6610-h0BB) 04/21(月)14:43 ID:AUqiwuPT0(1) AAS
何のためのVOIDポインタかで変わるしIntPtrで良いもんでもないわ
まぁなんだ、CharGPTなんて言うアホは黙っとけw
349: (ワッチョイ a6ce-i6bQ) 04/22(火)19:34 ID:rMo0RJWh0(1) AAS
Copilot「僕の出番ですね!」
350: (ワッチョイ 79d7-vVAN) 04/23(水)08:49 ID:eLYGqJZZ0(1) AAS
去ね
351: (スフッ Sd0a-NF34) 04/23(水)12:17 ID:snQ3Sxp8d(1) AAS
wchar : 「神は我を見放したのか」
352: (オイコラミネオ MM71-h0BB) 04/23(水)20:01 ID:WPvg2tW3M(1) AAS
>>347
ChatGPTはc#弱いな
353(1): 警備員[Lv.1][新芽] (ワッチョイ a69e-kvZ8) 04/24(木)01:47 ID:MPcZRdS90(1) AAS
>>345
最近のC#はMIL(IL?)でなくマシン語を直接()生成するようになったのですか
上下前次1-新書関写板覧索設栞歴
あと 165 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.057s