C#, C♯, C#相談室 Part98 (392レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

334: デフォルトの名無しさん (ワッチョイ bfbc-6F/1) [sage] 2025/04/16(水) 05:53:28.46 ID:HaWtxdw70(1/3) AAS
イマイチ質問が把握できないがこういうことか?
UIスレッドでTaskScheduler.FromCurrentSynchronizationContext();してTaskSchedulerを確保しておく
UIスレッドで実行したいメソッドは上記TaskSchedulerを使ってStartするTaskとして実行する

public Form1()
{
  this.Button1.Click += ExecuteAsync;
}
async void ExecuteAsync(object? sender, EventArgs e)
{
  var scheduler = TaskScheduler.FromCurrentSynchronizationContext();
  await Task.Run(async () => {
    using var logger = new Logger("Task");
    var task = Task.Factory.StartNew<Task>(() => SetTextAsync(), CancellationToken.None, CreationOptions.None, scheduler);
    await task;
    await task.Result;
  });
}
async Task SetTextAsync() {
  await Task.Delay(1000);
  this.Text = DateTime.Now.ToString("HH:mm:ss");
}
335: デフォルトの名無しさん (ワッチョイ bfbc-6F/1) [sage] 2025/04/16(水) 05:58:12.67 ID:HaWtxdw70(2/3) AAS
あ、TaskCreationOptionsのTaskが抜けてる…
async Task SetTextAsync()の代わりにasync Task<string> GetTextAsync()だったら
StartNew<Task<string>>にしてvar text = await task.Resultすればいい
340
(1): デフォルトの名無しさん (ワッチョイ bfbc-6F/1) [sage] 2025/04/16(水) 19:05:55.86 ID:HaWtxdw70(3/3) AAS
典型的にはこう
bool TestFunc(uint dwType, byte[] pBuffer, out uint pcbBufSize);
ref/outで宣言すると使いやすいけどNULLを渡せなくなるってのが問題になったりすることもある
ケースバイケースなので一概には言えない
ポインタが絡むなら誰がメモリ確保して誰がどうやって解放するのかを把握してないといけない場合もある
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.901s*