!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.5ch.net/test/read.cgi/tech/1590578921/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part149
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワキゲー MMca-Gz4g)
2020/12/16(水) 11:29:35.35ID:TSvQ057dM628デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 00:31:12.63ID:wyKYn9A/0 こんど WPF + VMU で
少し状況かわるんじゃねーーの。
少し状況かわるんじゃねーーの。
629デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 00:31:45.69ID:wyKYn9A/0 WPF + MVU
630デフォルトの名無しさん (ワッチョイ 1201-EsoH)
2021/02/14(日) 00:44:18.09ID:D24G58JB0631デフォルトの名無しさん (ササクッテロラ Spc7-lrpJ)
2021/02/14(日) 00:49:41.65ID:HSnUb3X8p で、MSが開発者から切り捨てられるわけですね
笛吹いても誰も踊らない
笛吹いても誰も踊らない
632デフォルトの名無しさん (ワッチョイ 63a7-WbtV)
2021/02/14(日) 00:50:37.43ID:x2D1GnEN0 じゃあ、それができてるサンプルないの?ってゆーたら1個も出てこなかったじゃない?
633デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 00:51:52.68ID:wyKYn9A/0 基本線で上位互換です。
@ WPF + イベントハンドラー
A WPF + MVVM
B WPF + MVU
メジャーなもんでもこんなに...
@ WPF + イベントハンドラー
A WPF + MVVM
B WPF + MVU
メジャーなもんでもこんなに...
634デフォルトの名無しさん (ワッチョイ 63a7-WbtV)
2021/02/14(日) 00:52:35.39ID:x2D1GnEN0 この世のどこにもないものを何故か偉そうに語ってたってのが真相
635デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/14(日) 00:55:34.53ID:KRyWJVgF0 XPSをどうしたいのか?とか
疑問は尽きないよな
疑問は尽きないよな
636デフォルトの名無しさん (ワッチョイ 527c-OxJ8)
2021/02/14(日) 01:01:03.63ID:Vd2M5/i80 WinFormsと同じコントロールを用意しているなら上位互換だけど
WPFはコントロールの数は減っているし、同じ名前ですらないし
ちょっとしたツール作るだけならWPFで作る理由が全然無いな
世に売るようなものでデザインとかスケーリングとか考慮するなら
WPFでもアリだろうけど、今はelectronとかで作ったほうがmacにも対応出来るし
WPFはもう過去のものという感じがするわ
WPFはコントロールの数は減っているし、同じ名前ですらないし
ちょっとしたツール作るだけならWPFで作る理由が全然無いな
世に売るようなものでデザインとかスケーリングとか考慮するなら
WPFでもアリだろうけど、今はelectronとかで作ったほうがmacにも対応出来るし
WPFはもう過去のものという感じがするわ
637デフォルトの名無しさん (ワッチョイ 1fad-uyRj)
2021/02/14(日) 01:16:47.00ID:F5r/6Yw/0 業務アプリだけど、WPF出始めから採用して、全然問題なくみんな移行できたよ。
638デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/14(日) 01:32:57.20ID:a94i0UVza 前も書いたかもしれんけどデータ数が多い折れ線グラフなんか実装しようとすると
行き詰るんだよねWPFは。これでWPFが嫌いになった。
あと、これは勉強不足で勘違いしてるかもしれないけどGDI+みたいに印刷と画面を
透過的に扱えない。
行き詰るんだよねWPFは。これでWPFが嫌いになった。
あと、これは勉強不足で勘違いしてるかもしれないけどGDI+みたいに印刷と画面を
透過的に扱えない。
639デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 01:45:32.23ID:wyKYn9A/0 MVVMで使ってるコントロールも
内部実装はMVVMしてませんしねwww
内部実装はMVVMしてませんしねwww
640デフォルトの名無しさん (ワッチョイ 63a7-WbtV)
2021/02/14(日) 01:46:58.58ID:x2D1GnEN0 酷い裏切り行為だな
641デフォルトの名無しさん (ワッチョイ ff2d-GDsi)
2021/02/14(日) 01:51:03.43ID:rF0WajFI0 コントロールをMVVMにする意味あるのか
642デフォルトの名無しさん (ワッチョイ a701-pCKf)
2021/02/14(日) 02:02:16.26ID:wyKYn9A/0 >>641
無いです。
外向きにMVVM対応させて内部実装は普通の実装です。
まあ最短高速な実装です。
昔クラスが1000以上あるでかいグラフコントロールを改修したときも、
内部はMVVMじゃなく普通の実装でしたし、
それ以外の関連コントール(とある会社のWFPコントールスイート製品)
もそんな感じでした。
無いです。
外向きにMVVM対応させて内部実装は普通の実装です。
まあ最短高速な実装です。
昔クラスが1000以上あるでかいグラフコントロールを改修したときも、
内部はMVVMじゃなく普通の実装でしたし、
それ以外の関連コントール(とある会社のWFPコントールスイート製品)
もそんな感じでした。
643デフォルトの名無しさん (ワッチョイ 46df-2f+G)
2021/02/14(日) 08:37:53.56ID:ZrfffQoz0 chartコントロールが標準で用意されてないのが気に入らん
上位互換ならコントロールもwinform以上用意しとけよ
上位互換ならコントロールもwinform以上用意しとけよ
644デフォルトの名無しさん (ワッチョイ 1201-EsoH)
2021/02/14(日) 09:03:10.41ID:D24G58JB0 そもそも上位互換って言ってるのはMSじゃなくて>>625だし
645デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/14(日) 09:16:57.56ID:KRyWJVgF0 禿道
646デフォルトの名無しさん (ワッチョイ df4f-Xfe6)
2021/02/14(日) 09:23:18.05ID:BvP4KASJ0 >>627
そのGDI+ももう明確にレガシーとされたしね。Forms使ってる人もDirectXにしろってことなんだろう。
そのGDI+ももう明確にレガシーとされたしね。Forms使ってる人もDirectXにしろってことなんだろう。
647デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/14(日) 09:25:17.46ID:KRyWJVgF0 ザマリンはskia
648デフォルトの名無しさん (ワッチョイ a701-DrOF)
2021/02/14(日) 09:33:25.22ID:q1FxdJ8A0 formと互換性あるとかかなり痛い人だな
649デフォルトの名無しさん (ワッチョイ 1f24-mR93)
2021/02/14(日) 11:00:50.44ID:zLYzvO1s0 >>643
作ろうと思えば作れるだけマシ
WPFはちょっと頑張れば最新ゲームのUIかのようなトリッキーなものも普通に作れるからな
WinFormsで同様の事をしようとするとOnPaintオーバーライドするなりしてGDIやDirect2Dで自力描画しないといけない(描画のみならずマウスの感知動作なども自力計算)
実際俺は自力描画でWinForms版マテリアルデザインとか昔作ってたけど
作ろうと思えば作れるだけマシ
WPFはちょっと頑張れば最新ゲームのUIかのようなトリッキーなものも普通に作れるからな
WinFormsで同様の事をしようとするとOnPaintオーバーライドするなりしてGDIやDirect2Dで自力描画しないといけない(描画のみならずマウスの感知動作なども自力計算)
実際俺は自力描画でWinForms版マテリアルデザインとか昔作ってたけど
650デフォルトの名無しさん (アウウィフ FFc3-olyV)
2021/02/14(日) 11:35:44.81ID:PGTjJwEIF +1
651デフォルトの名無しさん (ワッチョイ 16b5-duN9)
2021/02/14(日) 13:02:54.63ID:QrfVAGKh0652デフォルトの名無しさん (ワッチョイ ef7b-sg8N)
2021/02/14(日) 13:08:44.18ID:n35aAobg0 テンプレに書かれている日本語理解できないのか?
653デフォルトの名無しさん (ワッチョイ ef93-VJu3)
2021/02/14(日) 13:20:53.69ID:UC+EmpeR0 >>652
日本語初心者なんでしょう
日本語初心者なんでしょう
654デフォルトの名無しさん (ワッチョイ df4f-Xfe6)
2021/02/14(日) 13:22:05.52ID:BvP4KASJ0 作ろうと思えば作れるって話なのに、そんなもの要らん→だからFormsで充分、と
飛躍するところがいかにも頭が悪い。
飛躍するところがいかにも頭が悪い。
655デフォルトの名無しさん (ワッチョイ 1f24-mR93)
2021/02/14(日) 13:25:35.27ID:zLYzvO1s0 >>651
別に俺はWinForms要らないとも言ってないしWPFマンセーする気はない
小規模アプリであれば「WinFormsで十分」は同意だけど、中規模以上だと何だかんだでMVVMのが生産性高いしカスタム要素が必要になる率も高いから「WPFで十分」も同様に言えるんだけどな
まぁ俺はそもそもqt派だからもう全然まともにデスクトップ開発でC#使ってないが
別に俺はWinForms要らないとも言ってないしWPFマンセーする気はない
小規模アプリであれば「WinFormsで十分」は同意だけど、中規模以上だと何だかんだでMVVMのが生産性高いしカスタム要素が必要になる率も高いから「WPFで十分」も同様に言えるんだけどな
まぁ俺はそもそもqt派だからもう全然まともにデスクトップ開発でC#使ってないが
656デフォルトの名無しさん (ブーイモ MM0e-UZ9t)
2021/02/14(日) 13:35:12.11ID:N/o0G9JEM トリッキーな機能は要らないからプレゼンテーションはフレームワークにおまかせして
人間はモデルの実装に集中しようぜ
それができるのがMVVM、MVUだよって話だろ
WinFormsだと一番省力したいプレゼンテーションで疲弊するじゃん
人間はモデルの実装に集中しようぜ
それができるのがMVVM、MVUだよって話だろ
WinFormsだと一番省力したいプレゼンテーションで疲弊するじゃん
657デフォルトの名無しさん (ワッチョイ a701-pCKf)
2021/02/14(日) 13:39:25.24ID:wyKYn9A/0 ご移動下さい。
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
658デフォルトの名無しさん (ワッチョイ 1ede-WbtV)
2021/02/14(日) 14:04:10.76ID:k4XbJN7x0 MVVMなんかいらないよ
いらないから誰も使ってないんじゃん
いらないから誰も使ってないんじゃん
659デフォルトの名無しさん (ワッチョイ 1e42-DrOF)
2021/02/14(日) 14:14:37.91ID:/ikZE8v50 MVVMは単なるXamlの付属品じゃなくて、Prism.Unityを中心としたページ遷移型のアプリケーション構築
EventAggregatorによる疎結合のイベント通知、DIコンテナによるモジュールの管理なども有る
勿論web系でも使われている技術だけど、Formsではあまり使わない技術だね
ここらへんを一度使っちまうとFormsには戻りたくなくなる
EventAggregatorによる疎結合のイベント通知、DIコンテナによるモジュールの管理なども有る
勿論web系でも使われている技術だけど、Formsではあまり使わない技術だね
ここらへんを一度使っちまうとFormsには戻りたくなくなる
660デフォルトの名無しさん (ワッチョイ 1ede-WbtV)
2021/02/14(日) 14:34:25.50ID:k4XbJN7x0661デフォルトの名無しさん (ワッチョイ ef93-VJu3)
2021/02/14(日) 14:43:14.04ID:UC+EmpeR0 冗談のつもりだったのにホントに日本語理解できてないのか?
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
移動できない奴は、バカなのでぼくの主張は間違ってますって言ってるのと一緒だと気付けよ
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
移動できない奴は、バカなのでぼくの主張は間違ってますって言ってるのと一緒だと気付けよ
662デフォルトの名無しさん (ササクッテロラ Spc7-lrpJ)
2021/02/14(日) 16:08:58.24ID:HSnUb3X8p 全部Microsoftが悪い
663デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/14(日) 17:40:25.04ID:qsBeAXJea 何度も言うけどこんな過疎スレでなんで一生懸命「交通整理」してるのか、
その自分の動機の卑しさを自覚できない奴が一番バカっぽいと思うよw
誰かのため?みんなのため?
絶対違うよねそれ。
いやこれマジで大丈夫か。
その自分の動機の卑しさを自覚できない奴が一番バカっぽいと思うよw
誰かのため?みんなのため?
絶対違うよねそれ。
いやこれマジで大丈夫か。
664デフォルトの名無しさん (ワッチョイ d602-w1GE)
2021/02/14(日) 19:57:36.92ID:xK5MF7GG0 >>616
615じゃないけど質問です
>基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
wpfで結果を得てプロパティを変更しイベントが発生する場合
Dispatcher.BeginInvokeは必要ですか ?
615じゃないけど質問です
>基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
wpfで結果を得てプロパティを変更しイベントが発生する場合
Dispatcher.BeginInvokeは必要ですか ?
665デフォルトの名無しさん (ワッチョイ 3302-2jKL)
2021/02/14(日) 20:12:15.63ID:ZZdmuf4k0666デフォルトの名無しさん (ワッチョイ 96bb-6fnu)
2021/02/14(日) 20:44:22.17ID:xqD1GcXH0 >>663
死ねよ
死ねよ
667デフォルトの名無しさん (ワッチョイ 162c-FDiY)
2021/02/14(日) 20:53:10.91ID:K2VDjDyL0 Ruby on Rails で、控えめなJS フレームワークの、Stimulu を使えば良い
規約で、HTML のdata-controller 属性で、JSファイル名・コントローラーが決まるので、
そこにイベント処理を書くだけ
DOM・コントローラーは、多対多
1つのDOMは、複数のコントローラーで処理できる。
HTML内で、同じコントローラーを複数定義できる
規約で、HTML のdata-controller 属性で、JSファイル名・コントローラーが決まるので、
そこにイベント処理を書くだけ
DOM・コントローラーは、多対多
1つのDOMは、複数のコントローラーで処理できる。
HTML内で、同じコントローラーを複数定義できる
668デフォルトの名無しさん (ワッチョイ 162c-VmDF)
2021/02/14(日) 21:14:32.55ID:RwzQEShB0 >>664
引用してる文と質問内容が全然別物に見えるので回答できん
とりあえずINotifyPropertyChangedでのBindingならPropertyChangedは別スレッドで発生させても問題ない
引用してる文と質問内容が全然別物に見えるので回答できん
とりあえずINotifyPropertyChangedでのBindingならPropertyChangedは別スレッドで発生させても問題ない
669デフォルトの名無しさん (ワッチョイ c232-oFCC)
2021/02/14(日) 21:22:32.21ID:EcQCs95s0 >>664
そのレスはTask使ってるのに一々同期的に取り出してそうに見えて
固まらせたくない箇所を非同期にすれば良い的な意味合いで質問と噛み合うかどうか
そのプロパティを変更するのがUIコントロールでスレッドが異なれば必要…なんだけど
TaskをConfigureAwait(false)してなければawaitは待機元スレッドに帰ってくるよ
BeginInvokeはTaskベースで使うかな?別スレッドから実行させるならProgress<T>とか
4.5未満としてもSynchronizationContext.PostやTaskSchedulerを指定してContinueWithかな
そのレスはTask使ってるのに一々同期的に取り出してそうに見えて
固まらせたくない箇所を非同期にすれば良い的な意味合いで質問と噛み合うかどうか
そのプロパティを変更するのがUIコントロールでスレッドが異なれば必要…なんだけど
TaskをConfigureAwait(false)してなければawaitは待機元スレッドに帰ってくるよ
BeginInvokeはTaskベースで使うかな?別スレッドから実行させるならProgress<T>とか
4.5未満としてもSynchronizationContext.PostやTaskSchedulerを指定してContinueWithかな
670デフォルトの名無しさん (ワッチョイ d2ad-DrOF)
2021/02/15(月) 08:14:10.72ID:rMuvZP7r0 surfaceやipadなどで使えるクロスプラットフォームの、ペイントアプリを作ってみたいのですが、
C#が採用されているペイントソフトや3DCGソフトで有名なのってありますか?
C#が採用されているペイントソフトや3DCGソフトで有名なのってありますか?
671デフォルトの名無しさん (ワッチョイ 778c-pCKf)
2021/02/15(月) 08:52:18.66ID:URqj7Tc+0 >>670
Paint.NET
Paint.NET
672デフォルトの名無しさん (ワッチョイ ff2d-GDsi)
2021/02/15(月) 08:53:55.45ID:efsWz5OT0 >>670
Paint.NET
Paint.NET
673デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/15(月) 09:34:24.49ID:D0ANu2Du0 >>670
https://www.pinta-project.com/
なお paint.netのソースはwin32Api 知ってないと
キツいぞ。
projectはformだがwindow周りの実装は
ほぼwin32apiだ
https://www.pinta-project.com/
なお paint.netのソースはwin32Api 知ってないと
キツいぞ。
projectはformだがwindow周りの実装は
ほぼwin32apiだ
674デフォルトの名無しさん (ワッチョイ 5eda-S5lR)
2021/02/15(月) 11:14:53.43ID:r1R8Fv3d0 int port;
に対して
if( port < 1 && 65535 < port )
みたいなtrueになりえない条件文ってコンパイル時の警告出せないんでしたっけ?
に対して
if( port < 1 && 65535 < port )
みたいなtrueになりえない条件文ってコンパイル時の警告出せないんでしたっけ?
675664 (ワッチョイ d602-w1GE)
2021/02/15(月) 15:06:53.89ID:Hxbo2jbM0 >>668,669
質問が下手ですみません。質問を変えます
private async void Button_Click(object sender, RoutedEventArgs e)
{
Button.IsEnabled = false;
await Task.Delay(2000);
Button.IsEnabled = true; // *1
}
タスクが完了したときにUIスレッドが作業中だったとします。
そうすると、UIスレッドは作業を中断して *1を呼びますよね。
この解釈で正しいですか ?
だとすると、Buttonに対して
Button.IsEnabled += Button_IsEnabled がある場合、
UIスレッドが作業中だとUIスレッドは混乱するのではないかと思っています。
混乱を解消するには、awaitの後処理にはUIスレッドが暇になるのを待つ必要があるのではと考え、Dispatchr.BeginInvokeを思いつきました。
ただし、BeginInvokeを追加した例が見当たらないので、もっとうまい手があるのかもしれないと思い、質問しました。
長文失礼
質問が下手ですみません。質問を変えます
private async void Button_Click(object sender, RoutedEventArgs e)
{
Button.IsEnabled = false;
await Task.Delay(2000);
Button.IsEnabled = true; // *1
}
タスクが完了したときにUIスレッドが作業中だったとします。
そうすると、UIスレッドは作業を中断して *1を呼びますよね。
この解釈で正しいですか ?
だとすると、Buttonに対して
Button.IsEnabled += Button_IsEnabled がある場合、
UIスレッドが作業中だとUIスレッドは混乱するのではないかと思っています。
混乱を解消するには、awaitの後処理にはUIスレッドが暇になるのを待つ必要があるのではと考え、Dispatchr.BeginInvokeを思いつきました。
ただし、BeginInvokeを追加した例が見当たらないので、もっとうまい手があるのかもしれないと思い、質問しました。
長文失礼
676デフォルトの名無しさん (ワッチョイ 527c-Oe62)
2021/02/15(月) 15:24:35.05ID:89MhGAsi0 実際の実装は知らんがWindowsのメッセージループを処理するスレッドがUIスレッド(メインスレッド)だろうから、その手のスレッドプールで処理されるものは処理が終わった時点でメインスレッドにメッセージをポストしてメインスレッドがメッセージを受信したときに終了後の処理がされると言う流れかと
677デフォルトの名無しさん (ワッチョイ 9316-oFCC)
2021/02/15(月) 16:12:35.84ID:CfDXxyFV0 >>675
TaskとThreadを混同してるってオチ?
君が懸念してることは別Threadを利用したときに起こる事であって、DispatcherInvoke類も"別Thread"からUI操作を行うときに使う機能
TaskとThreadを混同してるってオチ?
君が懸念してることは別Threadを利用したときに起こる事であって、DispatcherInvoke類も"別Thread"からUI操作を行うときに使う機能
678デフォルトの名無しさん (ワッチョイ c232-oFCC)
2021/02/15(月) 17:54:07.29ID:ytBU07x20 >>675
作業を中断して*1を呼ぶというのは不適切に感じます。中断というならButton_Clickがawaitで後続処理が保留になる所でしょうか
そうなると*1が再開される手順ですが、UI処理はメッセージ単位なので>>676が仰る様なその合間に完了を感知してになると思います
このメッセージキューがパフォーマンスや互換性問題から専用スレッドによる処理が前提なのでBeginInvokeなどが必要になる訳です
翻ってawaitを使うとその辺りをやってくれます。FormsやWPFで異なる手順を抽象化したものがSynchronizationContextやTaskSchedulerですが
それらを推し進めて簡便に扱えるようにしたのがasync/awaitです。※同期的待機内で非同期待機とかしなければそんなに留意する必要はありません
技術的な解説については↓等が参考になると思いますが、直下のコードについてはTaskベース世代のものではないですね
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/advanced/threading-model?view=netframeworkdesktop-4.8
作業を中断して*1を呼ぶというのは不適切に感じます。中断というならButton_Clickがawaitで後続処理が保留になる所でしょうか
そうなると*1が再開される手順ですが、UI処理はメッセージ単位なので>>676が仰る様なその合間に完了を感知してになると思います
このメッセージキューがパフォーマンスや互換性問題から専用スレッドによる処理が前提なのでBeginInvokeなどが必要になる訳です
翻ってawaitを使うとその辺りをやってくれます。FormsやWPFで異なる手順を抽象化したものがSynchronizationContextやTaskSchedulerですが
それらを推し進めて簡便に扱えるようにしたのがasync/awaitです。※同期的待機内で非同期待機とかしなければそんなに留意する必要はありません
技術的な解説については↓等が参考になると思いますが、直下のコードについてはTaskベース世代のものではないですね
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/advanced/threading-model?view=netframeworkdesktop-4.8
679664 (ワッチョイ d602-w1GE)
2021/02/15(月) 19:20:24.59ID:Hxbo2jbM0 >>677,678
私の例で *1のプロパティ変更と通知ではメッセージループを使っているのかもしれませんが、*1の呼び出しは awaitの後続処理ではないでしょうか
次の例はまずいのではないでしょうか。
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Delay(2000);
MyCLREvent(this, EventArgs.Empty);
}
私の例で *1のプロパティ変更と通知ではメッセージループを使っているのかもしれませんが、*1の呼び出しは awaitの後続処理ではないでしょうか
次の例はまずいのではないでしょうか。
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Delay(2000);
MyCLREvent(this, EventArgs.Empty);
}
680デフォルトの名無しさん (ワッチョイ 162c-VmDF)
2021/02/16(火) 00:47:37.27ID:yRjou++30 なにをしてまずいというのかはわからんが
各所でThread.CurrentThread.ManagedThreadId表示させて
どこでどのスレッドになってるか確認してみれば?
各所でThread.CurrentThread.ManagedThreadId表示させて
どこでどのスレッドになってるか確認してみれば?
681デフォルトの名無しさん (ワッチョイ ff2d-XIid)
2021/02/16(火) 01:07:19.33ID:fNU3Qny80 >>679
*1はawaitの後続処理だけど、UIスレッドが空くまで実行されない
*1はawaitの後続処理だけど、UIスレッドが空くまで実行されない
682デフォルトの名無しさん (ワッチョイ c67c-FDiY)
2021/02/16(火) 09:52:46.68ID:ZNVxOhBd0 ボタン2つ用意してこういうので確認してみては
async void btn1_Click(object sender, RoutedEventArgs e) {
await Task.Delay(2000);
Trace.WriteLine("btn1");
}
void btn2_Click(object sender, RoutedEventArgs e) {
for (int i = 0; i < 10; i++) {
Thread.Sleep(300);
Trace.WriteLine("btn2");
}
}
async void btn1_Click(object sender, RoutedEventArgs e) {
await Task.Delay(2000);
Trace.WriteLine("btn1");
}
void btn2_Click(object sender, RoutedEventArgs e) {
for (int i = 0; i < 10; i++) {
Thread.Sleep(300);
Trace.WriteLine("btn2");
}
}
683デフォルトの名無しさん (ワッチョイ c232-lrpJ)
2021/02/16(火) 22:48:01.66ID:/yXZfRwG0 csvで数字を読み込んで、それをグラフ化して表示して、GUIの画面ごとスクリーンショットして保存するWPFプログラムを作ってます。
グラフはwindowsformhostを使ってchartコントロールで表示させています。
VisualTreeHelperでGUIの縦横サイズを取得して、RenderTargetBitmapにDrawingVisualを渡してスクリーンショットしているのですが、chart部分が保存されません
Graphics.CopyFromScreenというのも試してみましたがこちらではchartも表示されるものの、ウィンドウのドロップシャドウみたいなものが一緒に保存されてその分縦横がズレてGUIの右下が見切れます。
解決策を教えてください
グラフはwindowsformhostを使ってchartコントロールで表示させています。
VisualTreeHelperでGUIの縦横サイズを取得して、RenderTargetBitmapにDrawingVisualを渡してスクリーンショットしているのですが、chart部分が保存されません
Graphics.CopyFromScreenというのも試してみましたがこちらではchartも表示されるものの、ウィンドウのドロップシャドウみたいなものが一緒に保存されてその分縦横がズレてGUIの右下が見切れます。
解決策を教えてください
684デフォルトの名無しさん (ワッチョイ a333-CuPO)
2021/02/16(火) 22:58:23.73ID:92chE2An0 allowtransparencyがtrueになってるとか?
685デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/17(水) 03:55:15.13ID:eRzk3aeWa686デフォルトの名無しさん (オッペケ Src7-adQg)
2021/02/17(水) 14:41:28.07ID:UPYA2zP2r ディスプレイ上の座標を指定して、
画面の指定部分をそのままフォームに表示させたいと思っています
まずこれが可能なのかが資料見つかりませんでした
可能なら、毎回スクショ切り取って保存して表示、とかせずに、リアルタイムで反映させたいです
また、そのようにして表示した画面に、拡大や色反転などの加工を行うことは可能でしょうか?
画面の指定部分をそのままフォームに表示させたいと思っています
まずこれが可能なのかが資料見つかりませんでした
可能なら、毎回スクショ切り取って保存して表示、とかせずに、リアルタイムで反映させたいです
また、そのようにして表示した画面に、拡大や色反転などの加工を行うことは可能でしょうか?
687デフォルトの名無しさん (ワッチョイ d633-Xfe6)
2021/02/17(水) 15:11:52.55ID:JjIbIhY/0688デフォルトの名無しさん (ワッチョイ c67c-FDiY)
2021/02/17(水) 16:27:46.54ID:VhEokLWI0 可能かどうかで言えばWindows標準の拡大鏡ツールで実現できてるから可能といえる
C#で実現するのにはまあまず687を試してみればいいんじゃないかな
あと著作権保護されてるコンテンツを表示してる部分は多分無理
C#で実現するのにはまあまず687を試してみればいいんじゃないかな
あと著作権保護されてるコンテンツを表示してる部分は多分無理
689デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/17(水) 21:03:31.28ID:D9ZFiUm80 PaintWindowで取れないかな
690デフォルトの名無しさん (ササクッテロ Spc7-Jyxv)
2021/02/17(水) 23:31:19.68ID:5a8siaYVp リアルアイムでやるならWindows.Graphics.CaptureやDesktop Duplication APIだな
691デフォルトの名無しさん (ワッチョイ 1ee9-0s3P)
2021/02/17(水) 23:35:50.45ID:wHZs7f540 VSのProjectの構成って何仕様書で定義するものでしょうか?
外部仕様では見たこと無いのですが世間様はどうしてるんだろうと
外部仕様では見たこと無いのですが世間様はどうしてるんだろうと
692デフォルトの名無しさん (ワッチョイ a701-CuPO)
2021/02/18(木) 00:11:30.22ID:c2uEmfa00 安心の俺様仕様
693デフォルトの名無しさん (ワッチョイ 46df-2f+G)
2021/02/18(木) 00:19:08.60ID:80X4NLoW0 一般的には詳細設計で各プロジェクトの構成定義する
694デフォルトの名無しさん (ワッチョイ a701-0s3P)
2021/02/18(木) 08:41:32.49ID:K3tSL8mT0 世間様じゃ詳細設計で決めてるのですね
参考になります
外仕作成でプロジェクトの構造考えずプロトタイプもりもり作っていたので気になってました
参考になります
外仕作成でプロジェクトの構造考えずプロトタイプもりもり作っていたので気になってました
695デフォルトの名無しさん (アウアウエー Saaa-UZ9t)
2021/02/18(木) 09:18:08.93ID:fjuXbMGDa んなもん設計書にはかかないよ
696デフォルトの名無しさん (ワッチョイ 96bb-9N8P)
2021/02/18(木) 09:27:17.33ID:jXEmO6nJ0 Swiftスレにも似たようなこと書いてる奴がいるから、きっとこのことをまとめてアフィブログにでもするんだろう
697デフォルトの名無しさん (ラクッペペ MMde-HHI4)
2021/02/18(木) 10:41:06.50ID:4sNPnSsIM Debug.Printの引数はリリース版でも評価されますか?
698デフォルトの名無しさん (ワッチョイ a701-0s3P)
2021/02/18(木) 12:42:01.95ID:DdhrYGF40 現実的にプロジェクトの構造なんて誰も気にしない
699デフォルトの名無しさん (ワッチョイ 1201-EsoH)
2021/02/18(木) 18:00:30.64ID:EVRbmhyV0 プロジェクトの構成なのか構造なのか
そもそも構成とか構造って具体的に何?
そもそも構成とか構造って具体的に何?
700デフォルトの名無しさん (ワッチョイ 162c-FDiY)
2021/02/18(木) 22:14:18.02ID:UlBwu06v0 Ruby on Rails は、設定よりも規約
プロジェクト構成・名前付けルールなど、すべて決まっているから、
誰でも、同じ構成で作る
これが「レールに乗る」と言う事。
Rails のルールから外れて、独自なものを作ってはならない
オレオレ構成みたいなものを認めていない
プロジェクト構成・名前付けルールなど、すべて決まっているから、
誰でも、同じ構成で作る
これが「レールに乗る」と言う事。
Rails のルールから外れて、独自なものを作ってはならない
オレオレ構成みたいなものを認めていない
701デフォルトの名無しさん (ワッチョイ 8fdf-D7W+)
2021/02/19(金) 00:45:43.92ID:GwnD0oPh0 なんでRoRの話が突然出てくるのか
702デフォルトの名無しさん (ワッチョイ ffad-jt1D)
2021/02/19(金) 01:48:24.06ID:8tmtltZz0 >>701
他のスレ追い出されたやつだから
他のスレ追い出されたやつだから
703デフォルトの名無しさん (ワッチョイ 83e3-Nz9x)
2021/02/19(金) 02:16:52.43ID:+BesUuNA0 定期的に沸くたびに丁寧に相手するから居着いたパターン
704デフォルトの名無しさん (ワッチョイ 035f-ylyd)
2021/02/19(金) 05:03:59.49ID:Eig2tonS0 こいつわざわざpythonスレにやってきて時代遅れの遺物を押し付けに来る荒らしだろ
705デフォルトの名無しさん (ワッチョイ cf63-Bb+k)
2021/02/19(金) 05:37:12.65ID:473cJTkx0 ム板全域にいるよねこのガイジ
bashスレにもいた時は頭が痛くなったな
ふれあい作業所とかで遊んでればいいのにね
bashスレにもいた時は頭が痛くなったな
ふれあい作業所とかで遊んでればいいのにね
706デフォルトの名無しさん (エアペラ SDa7-OYW5)
2021/02/19(金) 08:26:30.93ID:qL15PbA4D 相手するから喜ぶ
粛々とNGしとけ
粛々とNGしとけ
707デフォルトの名無しさん (ブーイモ MMff-wfSA)
2021/02/19(金) 09:49:46.59ID:SQn3IdCjM ルビキチが珍しく質問に合ったレスを返してるのにお前らヒドイなw
708デフォルトの名無しさん (ブーイモ MMff-wfSA)
2021/02/19(金) 09:55:27.59ID:SQn3IdCjM プロジェクトのディレクトリ構成はアーキテクチャ設計を反映したもの
アーキテクチャ設計が詳細設計に含まれてるならで詳細設計段階で決める
Railsのようにアプリの機能構成に関係なく一律同じディレクトリ構成にするのもそれなりのメリットがある
アーキテクチャ設計が詳細設計に含まれてるならで詳細設計段階で決める
Railsのようにアプリの機能構成に関係なく一律同じディレクトリ構成にするのもそれなりのメリットがある
709デフォルトの名無しさん (エムゾネ FF1f-ZFay)
2021/02/19(金) 15:40:30.15ID:LoU7pdW5F710デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/19(金) 18:51:07.37ID:xy8YPNBA0 初心者です。画像の一部をクリックすると画面遷移を行うようなプログラムを
作りたいと考え、自分なりに作ってみたのですが
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class NG2to3 : MonoBehaviour
{
Vector2 Pos;
void Start()
{}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Pos = Input.mousePosition;
if (-15 <= this.Pos.x && this.Pos.x <= 15 &&
-35 <= this.Pos.y && this.Pos.y <= -15 )
{
SceneManager.LoadScene("scene3");
}
}
}
}
このプログラムで指定したPosの範囲の場合画面遷移を行いたいのですが、
画面の至るところをタッチすれど遷移してくれません。
どこが間違っているのか教えていただきたいです。
作りたいと考え、自分なりに作ってみたのですが
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class NG2to3 : MonoBehaviour
{
Vector2 Pos;
void Start()
{}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Pos = Input.mousePosition;
if (-15 <= this.Pos.x && this.Pos.x <= 15 &&
-35 <= this.Pos.y && this.Pos.y <= -15 )
{
SceneManager.LoadScene("scene3");
}
}
}
}
このプログラムで指定したPosの範囲の場合画面遷移を行いたいのですが、
画面の至るところをタッチすれど遷移してくれません。
どこが間違っているのか教えていただきたいです。
711デフォルトの名無しさん (ワッチョイ ff7c-Nz9x)
2021/02/19(金) 19:22:01.16ID:YkVGv+Id0 >>710
https://docs.unity3d.com/ja/2018.4/ScriptReference/Input-mousePosition.html
読めよw
どっちにしても値は
xは0〜Screen.width - 1
yは0〜Screen.hright - 1
やろ
https://docs.unity3d.com/ja/2018.4/ScriptReference/Input-mousePosition.html
読めよw
どっちにしても値は
xは0〜Screen.width - 1
yは0〜Screen.hright - 1
やろ
712デフォルトの名無しさん (ワッチョイ 035f-ylyd)
2021/02/19(金) 19:42:33.49ID:Eig2tonS0 ドキュメント読むのもそうだけど実際 にmousePositionの値を見たら良いと思うよ
713デフォルトの名無しさん (ワッチョイ ffad-jt1D)
2021/02/22(月) 02:08:01.45ID:aMOGcJaK0 構造体とリストどっちがいいとかあるの?
714デフォルトの名無しさん (ワッチョイ 83ad-bVKt)
2021/02/22(月) 07:33:16.03ID:DBdQ6Dl10 どちらもいい
715デフォルトの名無しさん (ワッチョイ 8f02-lzga)
2021/02/22(月) 08:40:26.66ID:q2LnICsL0 構造体リストにしよう
716デフォルトの名無しさん (ワッチョイ 7f52-n1zC)
2021/02/22(月) 09:21:08.61ID:KlgM0RdP0 >>713
まったく用途が違うから、普通はその二つでどちらにするかを迷うことはない
まったく用途が違うから、普通はその二つでどちらにするかを迷うことはない
717デフォルトの名無しさん (ワッチョイ a37c-OYW5)
2021/02/22(月) 11:28:40.84ID:J1FRHNv90 >>713
夕食は弁当と定食どっちがいいと思う?
夕食は弁当と定食どっちがいいと思う?
718デフォルトの名無しさん (ワッチョイ f361-cyI8)
2021/02/22(月) 18:39:45.74ID:5BxgjfJ50 リストじゃなくレコードじゃね?と言ってみるテスト
719デフォルトの名無しさん (ワッチョイ 83ad-96D9)
2021/02/22(月) 19:19:17.10ID:DBdQ6Dl10 structとclassの使い分けだったら質問の意図も分かるけど
720デフォルトの名無しさん (ラクッペペ MM7f-0TpN)
2021/02/22(月) 19:22:09.14ID:rk3Z26pVM カレーとコンビニ、どっちにする?
721デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/22(月) 21:06:02.69ID:8s+nkcdt0 スクリプトから条件で画像を表示させたいんですが、張り替えは出来ても新しく出現させることってできない?
722デフォルトの名無しさん (ワッチョイ b378-Nz9x)
2021/02/22(月) 21:22:09.87ID:7Jd6R0uh0 質問下手すぎでしょ
723デフォルトの名無しさん (ワッチョイ cfda-iyw6)
2021/02/22(月) 21:26:08.64ID:6SeUKgvV0 日本語でよろ
724デフォルトの名無しさん (ワッチョイ cfb5-xG0S)
2021/02/22(月) 21:42:20.42ID:0aX736QQ0 I want to display an image conditionally from a script,
but can I make it appear new even if I can replace it?
but can I make it appear new even if I can replace it?
725デフォルトの名無しさん (ワッチョイ cfbb-dJoW)
2021/02/22(月) 21:45:15.13ID:/lIHFE+b0 5W1Hでよろ
726デフォルトの名無しさん (ワッチョイ cfbb-EvSd)
2021/02/22(月) 23:51:22.27ID:nluN8fGs0 C#でWin32のHeapAlloc(GetProcessHeap(), 0, 0x1000);みたいなことするとGCと競合してバグるったりするの?
727デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/23(火) 00:10:32.83ID:qmo9+9Uk0 すいませんw
2Dunityでボタンを押したら画像を表示できるようなプログラムを作りたいのですが、
調べてみても元々ある画像をスクリプトによって別の物に変更するものはあれど
ボタンを押して0から画像を表示させることができるようなものを
見つけられなかったので、できないのかなと。。。どうなんでしょう?
2Dunityでボタンを押したら画像を表示できるようなプログラムを作りたいのですが、
調べてみても元々ある画像をスクリプトによって別の物に変更するものはあれど
ボタンを押して0から画像を表示させることができるようなものを
見つけられなかったので、できないのかなと。。。どうなんでしょう?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化 過去10年間に使用のメールアドレスや電話番号等も [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★2 [七波羅探題★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【速報】年収の壁の自民案判明、26年は168万円 [蚤の市★]
- 「ワールドトリガー」原作1話から完全新作アニメ化、よりパワーアップした1stシーズンとして [爆笑ゴリラ★]
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎます」★2 [冬月記者★]
- 【悲報】鈴木農水大臣、国民から「こいつひょっとしてアホなんじゃね?」と思われ始めてしまうwww [793117252]
- 自閉症児の父親「中絶しておけば良かった。 家族が欲しかったのに、手に入れたのは人間たまごっち」 [777114754]
- 【速報】統一教会から100万円の現金を受け取った疑いで現職大臣が辞職へ [709039863]
- 「ミニトマトがボウルに入ってるから使ったら残りはラップして輪ゴムしといてー」👉アスペ系旦那、とんでもない行動に出てしまう [242521385]
- 性獣フェラチオンが出現
- お昼のまったり🍵😶‍🌫🤏すこすこハウス🏡
