C#、処理をvar task = Task.Run(() => { /*処理*/ }で囲って、UIにアクセスする時だけApp.Current?.Dispatcher.Invoke((Action)(() => { /*UI処理*/ }));ってするだけで、むっちゃ動きが速くなる、たまにおかしくなるので注意
@moriyaki UIスレッドの奪い合いが起きるからね。Task.Run()にすれば確かに抜けられるが…UIの操作とは別に処理が走るのでタイミングによって想定外の結果になるというのは普通に起きる。UIから呼ぶ処理ならawait Task.Run()とでもした方がまだ無難。これだけでもUIスレッドは空くし、自分でDispatcher.InvokeしなくてもUIスレッドに帰ってくる。
@204504bySE await Task.Run() にするなら、メソッドを async にしなきゃですよね?この辺よく解ってないのですorz
様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。