「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1533466544/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part140
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
2018/10/04(木) 18:56:38.41ID:JnxMNCXd0320デフォルトの名無しさん (ワッチョイ 8b8a-cxcD)
2018/10/31(水) 21:31:50.61ID:GKybvSyw0 リンクってのがよく理解できていない
321デフォルトの名無しさん (ワッチョイ a1b3-I0/O)
2018/10/31(水) 23:31:16.71ID:Q2P2Jyf/0 SQLはひらめくけど、リンクはひらめかない
322デフォルトの名無しさん (ワッチョイ 35eb-cQPT)
2018/10/31(水) 23:45:42.03ID:kwqElk+D0 linqより理解しやすいメカニズムも無いと思うけど
323デフォルトの名無しさん (ワッチョイ afeb-o1DS)
2018/10/31(水) 23:51:55.59ID:lqvIUA6e0 ラムダ式を理解するのにデリゲートなんて要らねえのにな
一体どんな頭してんだ
一体どんな頭してんだ
324デフォルトの名無しさん (ワッチョイ b693-a/N+)
2018/11/01(木) 04:47:03.77ID:7mP44JOI0 タイプセーフな関数ポインタやコールバック、匿名関数で説明してるけど
それで通じないと どこから説明すれば良いかたいへん
デリゲートからの説明はしんどい…
それで通じないと どこから説明すれば良いかたいへん
デリゲートからの説明はしんどい…
325デフォルトの名無しさん (ワッチョイ b693-a/N+)
2018/11/01(木) 04:56:16.11ID:7mP44JOI0 >>319
Wikipediaにもいくつか乗ってるよ
Wikipediaにもいくつか乗ってるよ
326デフォルトの名無しさん (ワッチョイ 4e80-mY15)
2018/11/01(木) 07:48:57.67ID:PBz6MbCm0 Linq は、Java のStream、Ruby on Rails と同じ。
関数型
メソッドチェーンしていって、一番最後にレコードを取得する。
遅延実行
ずっと、フィルター・SQL 文だけを組み立てて、一番最後だけアクセスする
関数型
メソッドチェーンしていって、一番最後にレコードを取得する。
遅延実行
ずっと、フィルター・SQL 文だけを組み立てて、一番最後だけアクセスする
327デフォルトの名無しさん (スップ Sd5a-rxrj)
2018/11/01(木) 11:43:18.05ID:Ezzdmjted328デフォルトの名無しさん (ブーイモ MM7f-0Z6C)
2018/11/01(木) 11:46:58.88ID:DtT8Cv0dM デリゲートはイベントにも使うよ
そしてそれこそがデリゲートを理解しにくいものにしている最大の原因でもある
そしてそれこそがデリゲートを理解しにくいものにしている最大の原因でもある
329デフォルトの名無しさん (スップ Sd5a-rxrj)
2018/11/01(木) 13:53:28.62ID:Ezzdmjted ラムダ式を何処で使うかの話でデリゲートを何処で使うかについてはふれてないよ
デリゲートの使い道でいうと非同期実行するために使うとか色々ある
ラムダ式に関しては、FuncやActionかメソッドの引数ぐらいでしか使ってないと思うんだけど他になんかある?
デリゲートの使い道でいうと非同期実行するために使うとか色々ある
ラムダ式に関しては、FuncやActionかメソッドの引数ぐらいでしか使ってないと思うんだけど他になんかある?
330デフォルトの名無しさん (ワッチョイ 3e23-K1l+)
2018/11/01(木) 14:16:07.14ID:aKMxEeDc0 ローカル関数がなかった時代のローカル関数代わり
331デフォルトの名無しさん (アウアウウー Sac7-bp25)
2018/11/01(木) 18:07:39.71ID:0xRkJrzka 式木
332デフォルトの名無しさん (ワッチョイ 97b3-zV7r)
2018/11/01(木) 18:49:47.61ID:ECytQ9s20 ラムダ式使ったのはfind関数のときくらいかな
それ以外ほぼ使ったことない
それ以外ほぼ使ったことない
333デフォルトの名無しさん (ワッチョイ 4ee8-edRK)
2018/11/02(金) 00:13:13.50ID:cBjseW3X0 ワシの波動球はラムダ式まであるぞ
334デフォルトの名無しさん (ワッチョイ f68a-ZA70)
2018/11/02(金) 03:44:16.47ID:hToiCYAd0 Postgresを、SQLiteみたいにDBファイルとコネクタだけで使うにはどうすればよいでしょうか?
335デフォルトの名無しさん (ワッチョイ caeb-ZA70)
2018/11/02(金) 13:32:10.56ID:1IoIYp5Z0 無理だろそりゃ
336デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)
2018/11/02(金) 13:46:37.38ID:n/9UgDRl0 >>335
portable版使ったことないの?
portable版使ったことないの?
337デフォルトの名無しさん (ワッチョイ caeb-ZA70)
2018/11/02(金) 13:51:48.43ID:1IoIYp5Z0338デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)
2018/11/02(金) 13:55:23.85ID:n/9UgDRl0 >>337
なんで?
なんで?
339デフォルトの名無しさん (ワッチョイ caeb-ZA70)
2018/11/02(金) 13:56:59.71ID:1IoIYp5Z0 >>338
じゃあ俺には無理だから、あんたが教えてあげたら良いんじゃないの
じゃあ俺には無理だから、あんたが教えてあげたら良いんじゃないの
340デフォルトの名無しさん (スップ Sdba-mm7G)
2018/11/02(金) 17:21:36.81ID:ouVO3wBCd namespace Drawlinetest
{
public partial class Form1 : Form
{
PictureBox pbox = new PictureBox();
Point pt = new Point(-1, -1);
public Form1()
{
InitializeComponent();
pbox.Location = new Point(0, 0); pbox.Size = new Size(500, 500);
this.Controls.Add(pbox); this.ClientSize = pbox.Size;
pbox.Image = new Bitmap(pbox.Width, pbox.Height);
pbox.MouseDown += MD;
}
private void MD(object sender, MouseEventArgs e)
{
Point p = e.Location;
if (e.Clicks > 1) { pbox.Image = new Bitmap(pbox.Width, pbox.Height); return; }//ダブルクリックで画像リセット
int x = pbox.Width - 1, y = pbox.Height - 1;
if (pt.X < 0 || pt.X > x || pt.Y < 0 || pt.Y > y) { pt = p; return; }
Graphics g = Graphics.FromImage(pbox.Image);
g.DrawLine(Pens.Black, pt.X, pt.Y, p.X, p.Y);
pbox.Refresh(); g.Dispose(); pt = p;
}
}
}
前スレにあったのを参考に400角にピッチ20の方眼を作りました。
クリック時に近い点を取って連続線にしたい場合どうすればいいですか?
{
public partial class Form1 : Form
{
PictureBox pbox = new PictureBox();
Point pt = new Point(-1, -1);
public Form1()
{
InitializeComponent();
pbox.Location = new Point(0, 0); pbox.Size = new Size(500, 500);
this.Controls.Add(pbox); this.ClientSize = pbox.Size;
pbox.Image = new Bitmap(pbox.Width, pbox.Height);
pbox.MouseDown += MD;
}
private void MD(object sender, MouseEventArgs e)
{
Point p = e.Location;
if (e.Clicks > 1) { pbox.Image = new Bitmap(pbox.Width, pbox.Height); return; }//ダブルクリックで画像リセット
int x = pbox.Width - 1, y = pbox.Height - 1;
if (pt.X < 0 || pt.X > x || pt.Y < 0 || pt.Y > y) { pt = p; return; }
Graphics g = Graphics.FromImage(pbox.Image);
g.DrawLine(Pens.Black, pt.X, pt.Y, p.X, p.Y);
pbox.Refresh(); g.Dispose(); pt = p;
}
}
}
前スレにあったのを参考に400角にピッチ20の方眼を作りました。
クリック時に近い点を取って連続線にしたい場合どうすればいいですか?
341デフォルトの名無しさん (ワッチョイ 4e9a-Y/6i)
2018/11/02(金) 17:41:50.22ID:KsjOw3TM0 >>340
「近い点」の定義は?
座標差が10以内の場合を0に近いとした場合
p.X=p.X-p.X%20+((p.X%20)>10?20:0)
Y座標にも同じような計算式を適用
でそのコピペしたところに組み込むときは画像範囲外の座標を指定した場合はリセットされるので、その辺も改変しないと
「近い点」の定義は?
座標差が10以内の場合を0に近いとした場合
p.X=p.X-p.X%20+((p.X%20)>10?20:0)
Y座標にも同じような計算式を適用
でそのコピペしたところに組み込むときは画像範囲外の座標を指定した場合はリセットされるので、その辺も改変しないと
342デフォルトの名無しさん (ワッチョイ fac3-N6i4)
2018/11/02(金) 17:44:00.81ID:1rdv+QTJ0 リージョン
343デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/02(金) 18:39:24.09ID:Zmz30XyOa >>340
マウス座標に一番近い格子点の座標を求める方法って意味なら、
(1) マウス座標を囲む4つの格子点を返すメソッドを書く(マウス座標が格子点上の
場合に何を返すかは適当に決めて)
(2) マウス座標と任意の座標の距離(の2乗)を求めるメソッドを書く(ラムダ式でいい)
(3) LINQのOrderByでも使って(1)と(2)から求められる
マウス座標に一番近い格子点の座標を求める方法って意味なら、
(1) マウス座標を囲む4つの格子点を返すメソッドを書く(マウス座標が格子点上の
場合に何を返すかは適当に決めて)
(2) マウス座標と任意の座標の距離(の2乗)を求めるメソッドを書く(ラムダ式でいい)
(3) LINQのOrderByでも使って(1)と(2)から求められる
344デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/02(金) 18:43:56.30ID:Zmz30XyOa 今気づいたけど、MSDNのリファレンス、無茶苦茶見づらくなってない?
拡張メソッドはどこで見られるのこれ?
VS2010時代の人力で翻訳されたドキュメントも読めなくなってるし....
MSっていらんことする天才だなw
Googleもそうだけど
拡張メソッドはどこで見られるのこれ?
VS2010時代の人力で翻訳されたドキュメントも読めなくなってるし....
MSっていらんことする天才だなw
Googleもそうだけど
345デフォルトの名無しさん (ブーイモ MMba-0Z6C)
2018/11/02(金) 18:48:39.64ID:3EaYIZ29M 「英語で読む」が付いて格段に読みやすくなったわ
英語読めない人は大変だなw
英語読めない人は大変だなw
346デフォルトの名無しさん (ワッチョイ 37e3-aMe6)
2018/11/02(金) 19:00:33.18ID:YQK0i7tX0 サンプルコードがないメソッドを報告するって付けてよ
347デフォルトの名無しさん (オイコラミネオ MMe3-a/N+)
2018/11/02(金) 22:00:12.56ID:qBR9F2NOM chromeの翻訳は実用十分
MSDNは昔より酷いよな
英語です読むオプションが便利やね
MSDNは昔より酷いよな
英語です読むオプションが便利やね
348デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)
2018/11/02(金) 22:05:20.63ID:n/9UgDRl0 >>344
docsじゃなくて?
docsじゃなくて?
349デフォルトの名無しさん (ワッチョイ 97b3-zV7r)
2018/11/03(土) 01:49:56.08ID:m4AFUYcO0 >>340
数学の問題かな
マウスの座標を20で割って商nと余りを求める
余りが0<10
x=20n
余りが10<20
x=20(n+1)
yも同様にして座標が求まる
2点の座標p1,p2に線を引く
これの繰り返し
数学の問題かな
マウスの座標を20で割って商nと余りを求める
余りが0<10
x=20n
余りが10<20
x=20(n+1)
yも同様にして座標が求まる
2点の座標p1,p2に線を引く
これの繰り返し
350デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/03(土) 02:19:46.79ID:++9uwWwJa グリッドならわざわざ距離なんか求めずX軸Y軸独立に最近傍検索しても同じことか
そりゃそうかw
そりゃそうかw
351デフォルトの名無しさん (ワッチョイ 4ea5-PRUr)
2018/11/03(土) 07:55:15.80ID:SApjZlYC0352デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)
2018/11/03(土) 08:03:39.30ID:rSl2Ac3O0 ついにMSもバカをきりすてはじめたか
いちいちバカの相手をしてたら大変だからな
いちいちバカの相手をしてたら大変だからな
353デフォルトの名無しさん (ワッチョイ 4e81-vkTM)
2018/11/03(土) 11:23:12.64ID:+zJSXhjW0 方法はさすがに草
354デフォルトの名無しさん (アウアウエー Sa52-0Z6C)
2018/11/03(土) 12:53:13.50ID:q2N3VeHVa あえて誰にでも間違いがわかるバカな翻訳を残すことで、
俺達はもう英語の読めないバカジャップを相手にする気はない、英語を読むか廃業しろ、
というメッセージを伝えようとしているのだろう
俺達はもう英語の読めないバカジャップを相手にする気はない、英語を読むか廃業しろ、
というメッセージを伝えようとしているのだろう
355デフォルトの名無しさん (ワッチョイ 7f2b-MyS3)
2018/11/03(土) 13:25:00.49ID:XovyTjqY0 デバッグ用のビルドはこの設定ファイル、リリース用のビルドの時はあの設定ファイルの値を組み込みたい
ってときはどうやるの
ってときはどうやるの
356デフォルトの名無しさん (ブーイモ MM26-0Z6C)
2018/11/03(土) 13:37:41.08ID:N8ATSODSM >>355
ビルドで切り替えるなら #if DEBUG で十分
Web開発で使われるような動的な設定の切り替えは、同じビルドを環境に応じた異なる設定で実行したいというニーズにおいて使用するもの
Webだと、ビルドしてステージング環境でテストしてそのまま同じものを本番にデプロイするんだよ
ビルドで切り替えるなら #if DEBUG で十分
Web開発で使われるような動的な設定の切り替えは、同じビルドを環境に応じた異なる設定で実行したいというニーズにおいて使用するもの
Webだと、ビルドしてステージング環境でテストしてそのまま同じものを本番にデプロイするんだよ
357デフォルトの名無しさん (スプッッ Sd5a-7KdF)
2018/11/03(土) 17:26:27.47ID:Kq73EWlFd デリゲートって関数登録して好きなタイミングでそいつ呼べますよって使い方のイメージだけども違うんかね
358デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/03(土) 18:29:16.11ID:SHI5qsHHa >>357
前にも書いた気がするけど、本質はデリゲートっていう概念を導入することによって
デリゲート型の変数が作れるってことだと思うよ。
C#からデリゲートがない言語を見た場合、それは
デリゲートのリテラル( = メソッド)の定義は出来るのにデリゲートの変数の宣言はできない不自由な世界に見える
前にも書いた気がするけど、本質はデリゲートっていう概念を導入することによって
デリゲート型の変数が作れるってことだと思うよ。
C#からデリゲートがない言語を見た場合、それは
デリゲートのリテラル( = メソッド)の定義は出来るのにデリゲートの変数の宣言はできない不自由な世界に見える
359デフォルトの名無しさん (ワッチョイ f3d6-zV7r)
2018/11/03(土) 23:43:38.27ID:QP19bU4J0 数作ってる内に最初の設計こそが一番大事な気がしてきた
が、それで最後まで行けた試し無し
が、それで最後まで行けた試し無し
360デフォルトの名無しさん (アウアウエー Sa52-0Z6C)
2018/11/04(日) 00:27:59.79ID:Ujv6OCQma 設計においては全体像を常に持ちながらもフェーズに応じて必要以上に詰めすぎることなく適切な抽象度に留めるバランス感覚が重要
厳格なウォーターフォールだろうとアジャイルだろうとそこは同じで、最初から細部を詰めようとするのは確実に時間の無駄
厳格なウォーターフォールだろうとアジャイルだろうとそこは同じで、最初から細部を詰めようとするのは確実に時間の無駄
361デフォルトの名無しさん (ワッチョイ 4e81-WT4u)
2018/11/04(日) 00:56:11.57ID:ycEmTONY0 設計力を高める(学習)するのに適切な書籍またはサイトがあれば教えてください。
362デフォルトの名無しさん (ワッチョイ a3d2-2KtO)
2018/11/04(日) 00:56:42.60ID:316Hfb/o0 まあそうなんだけど、前工程が適当だと後工程が確実に割を食うじゃん。
どこら辺にいい加減があるんだろうな。
どこら辺にいい加減があるんだろうな。
363デフォルトの名無しさん (ブーイモ MM26-0Z6C)
2018/11/04(日) 01:09:06.89ID:xCAdckZOM >>361
ちょっと古いけどこれなんかわりと有名
https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff650706(v=pandp.10)
ちょっと古いけどこれなんかわりと有名
https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff650706(v=pandp.10)
364デフォルトの名無しさん (ブーイモ MMba-cm4e)
2018/11/04(日) 10:06:20.84ID:TRDIKx2zM 権力のあるところがざっくりやって、弱い連中に細かいとこ押し付ける。
365デフォルトの名無しさん (ワッチョイ 5ba5-PRUr)
2018/11/04(日) 10:54:42.18ID:iKmrkyIQ0 ユーザーなども含めた他人の意見をフィードバックしようなどと
色気を出した瞬間、どこまで詰めるかなんて分からなくなる
結局一人で設計してどこまでやるかなんて一人で決断するしかない
アプリなんて自分が使って満足ならOK
色気を出した瞬間、どこまで詰めるかなんて分からなくなる
結局一人で設計してどこまでやるかなんて一人で決断するしかない
アプリなんて自分が使って満足ならOK
366デフォルトの名無しさん (スプッッ Sd5a-7KdF)
2018/11/05(月) 15:59:03.10ID:QhIuz4Ucd disposeを継承したクラスのインスタンスのデストラクタが参照があるときに呼び出されてるのだけど
そんな現象に見回れた人居ませんか
disposeの継承は関係ないかもしれないけどそのクラスの作りは今そうなってます
そんな現象に見回れた人居ませんか
disposeの継承は関係ないかもしれないけどそのクラスの作りは今そうなってます
367デフォルトの名無しさん (ブーイモ MM7f-0Z6C)
2018/11/05(月) 16:25:54.17ID:9y9XQ9xCM ありえない
今更CLRのそんな基本的なところがバグってるなんて考えられないから、バグがあるのは間違いなく貴方の目か頭の方です
今更CLRのそんな基本的なところがバグってるなんて考えられないから、バグがあるのは間違いなく貴方の目か頭の方です
368デフォルトの名無しさん (スッップ Sdba-qaUX)
2018/11/05(月) 17:39:02.66ID:ci20RGBId >>340
これって前打った点と新しい点を線引いてるけど、前の点はどう記憶してるんですか?前の点にもう一個情報を持たすのは可能ですか?
線が被った時、線をずらして書こうと思ってるんですけど、
例えば↓2マス↑6マスとクリックして書いたとき被るのをちょっと右にずらして書くのは出来たんですけど、
条件をpt.X==p.X && pt.Y<p.Y
だと変わって欲しくないときもズレる。
ズラす条件は直角で、始点を0を基点として
↓に引いた時は左
↑に引いた時は右
←に引いた時は上
右に引いた時は↓
これって前打った点と新しい点を線引いてるけど、前の点はどう記憶してるんですか?前の点にもう一個情報を持たすのは可能ですか?
線が被った時、線をずらして書こうと思ってるんですけど、
例えば↓2マス↑6マスとクリックして書いたとき被るのをちょっと右にずらして書くのは出来たんですけど、
条件をpt.X==p.X && pt.Y<p.Y
だと変わって欲しくないときもズレる。
ズラす条件は直角で、始点を0を基点として
↓に引いた時は左
↑に引いた時は右
←に引いた時は上
右に引いた時は↓
369デフォルトの名無しさん (ワッチョイ 4e9a-Y/6i)
2018/11/05(月) 19:35:41.47ID:W+eHh5+20 >>368
>前の点はどう記憶
フィールドのPoint pt
描画範囲が被る場合の判定がちょっと思いつかないけど
前の点にもう一個情報じゃなく描画した点の位置を全部記憶してからになる気がする
線描画を半透明にして被った場合にもわかるようにとか駄目なの?
>前の点はどう記憶
フィールドのPoint pt
描画範囲が被る場合の判定がちょっと思いつかないけど
前の点にもう一個情報じゃなく描画した点の位置を全部記憶してからになる気がする
線描画を半透明にして被った場合にもわかるようにとか駄目なの?
370デフォルトの名無しさん (ワッチョイ 9a8a-7KdF)
2018/11/05(月) 23:06:04.46ID:CiuGU7fm0371デフォルトの名無しさん (ワッチョイ 97b3-zV7r)
2018/11/06(火) 00:58:16.86ID:2irnAq2B0 >>368
pt = pが前の点の記録
pt = pが前の点の記録
372デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 16:46:04.32ID:KNaAB8gP0 async/awaitが難しすぎる
一見簡単そうに見えるんだけど、結構注意深く使わないとこれはまるよね
(Web見ていると使い方で注意事項多いし)
これって、MS的には何を目指したものなの
最初見た時は、初心者向けかなと思ったら偉い難しいのでびっくりした
BackgroundWorkerなんて、結構納得しやすかったのに
一見簡単そうに見えるんだけど、結構注意深く使わないとこれはまるよね
(Web見ていると使い方で注意事項多いし)
これって、MS的には何を目指したものなの
最初見た時は、初心者向けかなと思ったら偉い難しいのでびっくりした
BackgroundWorkerなんて、結構納得しやすかったのに
373デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/06(火) 17:49:22.75ID:Irg6T2PQa そこはそんなに難しく考えることないかと
「非同期的にAの終了を待機してその後Bを実行」みたいなコードを
普通のシーケンシャルな処理みたいに書けるようにするためじゃないの?
「非同期的にAの終了を待機してその後Bを実行」みたいなコードを
普通のシーケンシャルな処理みたいに書けるようにするためじゃないの?
374デフォルトの名無しさん (ワッチョイ 8a7e-zV7r)
2018/11/06(火) 18:02:29.90ID:tGae1nmw0 まぁ初心者向けというか、Progress<T>等でも実装を隠蔽しつつ
UIスレッドで行うべき処理を文脈的に記述しやすく…?
いや、個人的にはyieldよろしく妙なコードを生成した気がするし
.NET 4考慮でSynchronizationContext捏ねる方が好きだけどね
UIスレッドで行うべき処理を文脈的に記述しやすく…?
いや、個人的にはyieldよろしく妙なコードを生成した気がするし
.NET 4考慮でSynchronizationContext捏ねる方が好きだけどね
375デフォルトの名無しさん (スップ Sdba-vbIu)
2018/11/06(火) 18:04:31.43ID:YGMwXXKod >>372
何がどう難しすぎるの?
何がどう難しすぎるの?
376デフォルトの名無しさん (ワッチョイ caeb-ZA70)
2018/11/06(火) 18:14:27.73ID:BgqxGxaf0 すまんが、あるクラスがインスタンス化された際、そのクラスのコンストラクターでインスタンス化した元のオブジェクトorクラスを取得することってできないの?
デバッグに使いたいんで引数で渡すのはなしでたのむ
デバッグに使いたいんで引数で渡すのはなしでたのむ
377デフォルトの名無しさん (スップ Sdba-vbIu)
2018/11/06(火) 18:41:26.83ID:YGMwXXKod >>376
日本語で頼む
日本語で頼む
378デフォルトの名無しさん (ワッチョイ 8a7e-zV7r)
2018/11/06(火) 18:45:38.66ID:tGae1nmw0379デフォルトの名無しさん (ワッチョイ d7ad-zV7r)
2018/11/06(火) 19:01:18.64ID:ySONZz/l0 象徴天皇制の現代で国民の意見を象徴しなかったらそら叩かれるだろw
380デフォルトの名無しさん (ワッチョイ d7ad-zV7r)
2018/11/06(火) 19:01:53.71ID:ySONZz/l0 誤爆だすまん
381デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 19:29:28.47ID:KNaAB8gP0 あれ?難しいと思っているの俺だけ?
>>375
下の場合、基本 処理1=>test()=>処理2と逐次処理する。
test()のとこでawaitしているにもかかわらず、すぐにTestAsnc()は終了しちゃうとこ
test()で止まっているのに、値も設定されず次の処理にいくとか、動作が見た目と違い過ぎる
main(){
int ret = TestAsync();
}
async Task<int> TestAsync() {
処理1;
int ret=await test();
処理2;
return ret;
}
int test() {
24時間かかる処理;
}
>>375
下の場合、基本 処理1=>test()=>処理2と逐次処理する。
test()のとこでawaitしているにもかかわらず、すぐにTestAsnc()は終了しちゃうとこ
test()で止まっているのに、値も設定されず次の処理にいくとか、動作が見た目と違い過ぎる
main(){
int ret = TestAsync();
}
async Task<int> TestAsync() {
処理1;
int ret=await test();
処理2;
return ret;
}
int test() {
24時間かかる処理;
}
382デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 19:44:02.97ID:KNaAB8gP0 >>375
◆async void は使うな
投げっぱなしは、なんでダメやねん
◆理由は分かったけど、Waitと混ぜるとデッドロックするとこ
シングルスレッド止めたら、戻ったら動かないのは理解出来る
でも、async/awaitってTaskクラスを元にしてるんでしょ。
だったら、似たような動作をしてくれるもんだと…
◆SynchronizationContextとは何者?
UI処理に使うのはわかった。でも、これってその為だけ?
でも、一番の理由は、背景を含めてきちんと解説しているHPあるいは書籍が欲しいかな
◆async void は使うな
投げっぱなしは、なんでダメやねん
◆理由は分かったけど、Waitと混ぜるとデッドロックするとこ
シングルスレッド止めたら、戻ったら動かないのは理解出来る
でも、async/awaitってTaskクラスを元にしてるんでしょ。
だったら、似たような動作をしてくれるもんだと…
◆SynchronizationContextとは何者?
UI処理に使うのはわかった。でも、これってその為だけ?
でも、一番の理由は、背景を含めてきちんと解説しているHPあるいは書籍が欲しいかな
383デフォルトの名無しさん (ワッチョイ 4efa-2KtO)
2018/11/06(火) 19:47:29.55ID:bqFqbezi0 testがTaskになってない
384デフォルトの名無しさん (ワッチョイ 1ad2-vbIu)
2018/11/06(火) 19:53:25.35ID:HIVoSst90 >>381
mainメソッド自体が非同期じゃねーだろそれ
mainメソッド自体が非同期じゃねーだろそれ
385デフォルトの名無しさん (オッペケ Srbb-GQwG)
2018/11/06(火) 20:04:46.85ID:X+2KbTG8r awaitって日本語に直すと「あ待て」なの?
386デフォルトの名無しさん (アウアウウー Sac7-eilh)
2018/11/06(火) 20:16:58.70ID:KZ0uzBLfa >>382
未確認飛行 Cの本サイトやブログが詳しい、例えばこれ
https://ufcpp.wordpress.com/2012/11/12/asyncawait%E3%81%A8%E5%90%8C%E6%99%82%E5%AE%9F%E8%A1%8C%E5%88%B6%E5%BE%A1/
async voidを避けるべき理由は http://neue.cc/2013/10/10_429.html を見てくれ
awaitとWaitを混ぜるとデッドロックするのはSynchronizationContextが関係していて
awaitするTaskの終了後は、awaitする前のスレッドで続きの処理をしようとするのが理由(ConfigureAwait使えば別のスレッドで続きの処理をする)
WaitはTaskが終了するまでそのスレッドで何もできなくなるから、awaitの「続きの処理をしようとする」ことが出来ずにデッドロックする
それで件のSynchronizationContextは、UI処理で使うためのものと思えばいいと思う
Webサーバー側でも同期コンテキストの概念があるらしいがよく知らない
>>385
https://ufcpp.net/blog/2018/1/await/
未確認飛行 Cの本サイトやブログが詳しい、例えばこれ
https://ufcpp.wordpress.com/2012/11/12/asyncawait%E3%81%A8%E5%90%8C%E6%99%82%E5%AE%9F%E8%A1%8C%E5%88%B6%E5%BE%A1/
async voidを避けるべき理由は http://neue.cc/2013/10/10_429.html を見てくれ
awaitとWaitを混ぜるとデッドロックするのはSynchronizationContextが関係していて
awaitするTaskの終了後は、awaitする前のスレッドで続きの処理をしようとするのが理由(ConfigureAwait使えば別のスレッドで続きの処理をする)
WaitはTaskが終了するまでそのスレッドで何もできなくなるから、awaitの「続きの処理をしようとする」ことが出来ずにデッドロックする
それで件のSynchronizationContextは、UI処理で使うためのものと思えばいいと思う
Webサーバー側でも同期コンテキストの概念があるらしいがよく知らない
>>385
https://ufcpp.net/blog/2018/1/await/
387デフォルトの名無しさん (ワッチョイ 97d3-QXT6)
2018/11/06(火) 20:22:22.86ID:hiXG5OoB0 >>381,382
await/asyncが簡単だとは俺も思わんが初っ端からタイポってレベルじゃないコードが出てくると
「わかった」と言ってる部分すら疑ってかかってしまう
> ◆async void は使うな
わざわざ特別に許可されている構文であり使うなってことはない
使うべきではない場面で手抜きの為に採用するな、という文脈なら理解できる
> ◆理由は分かったけど、Waitと混ぜるとデッドロックするとこ
ConfigureAwaitまわりについては確かに直感に反する場合が多々あるが
結局のところをどちらを既定にするべきかという話になる
> ◆SynchronizationContextとは何者?
UI処理に使うのはただの一例。await(に限った話でもないが)の継続する処理を
どこでに実行するのかカスタマイズするために自分で実装することもできる
await/asyncが簡単だとは俺も思わんが初っ端からタイポってレベルじゃないコードが出てくると
「わかった」と言ってる部分すら疑ってかかってしまう
> ◆async void は使うな
わざわざ特別に許可されている構文であり使うなってことはない
使うべきではない場面で手抜きの為に採用するな、という文脈なら理解できる
> ◆理由は分かったけど、Waitと混ぜるとデッドロックするとこ
ConfigureAwaitまわりについては確かに直感に反する場合が多々あるが
結局のところをどちらを既定にするべきかという話になる
> ◆SynchronizationContextとは何者?
UI処理に使うのはただの一例。await(に限った話でもないが)の継続する処理を
どこでに実行するのかカスタマイズするために自分で実装することもできる
388デフォルトの名無しさん (ササクッテロラ Spbb-mbCH)
2018/11/06(火) 20:24:08.32ID:M0pxYueSp 非同期処理はここが分かりやすかった
https://www.kekyo.net/2016/12/06/6186
https://www.kekyo.net/2016/12/06/6186
389デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/06(火) 20:39:00.29ID:Irg6T2PQa >>381
落とし穴が存在する、という意味で難しいのは確か。
非同期メソッドに限らず非同期処理は全部そうだけど
>動作が見た目と違い過ぎる
これは勘違い。
testの終了を(非同期的に)待機して終了したら下の行を継続するんだから
むしろ見た目通りでしょ。
そこでメソッドを抜けてるわけじゃない。
ただスレッドの占有を止めるだけ
落とし穴が存在する、という意味で難しいのは確か。
非同期メソッドに限らず非同期処理は全部そうだけど
>動作が見た目と違い過ぎる
これは勘違い。
testの終了を(非同期的に)待機して終了したら下の行を継続するんだから
むしろ見た目通りでしょ。
そこでメソッドを抜けてるわけじゃない。
ただスレッドの占有を止めるだけ
390デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 20:54:24.19ID:KNaAB8gP0 >>387
>await/asyncが簡単だとは俺も思わんが初っ端からタイポってレベルじゃないコードが出てくると
どういうこと?
ちなみに、俺はmain中のint ret = TestAsync();はコンパイラーエラーを期待していた。
普通に実行できるうえに、test ()を待たずして、TestAsync()が終了するのに
びっくりしたけど、そういう動作なんでしょ?だから分からないと
>>389
>そこでメソッドを抜けてるわけじゃない。ただスレッドの占有を止めるだけ
でも、test()が終了していないのにTestAsync()が終了するのはなぜ?
retにはTask<int>型が入って、Result未設定になってるけど。
>await/asyncが簡単だとは俺も思わんが初っ端からタイポってレベルじゃないコードが出てくると
どういうこと?
ちなみに、俺はmain中のint ret = TestAsync();はコンパイラーエラーを期待していた。
普通に実行できるうえに、test ()を待たずして、TestAsync()が終了するのに
びっくりしたけど、そういう動作なんでしょ?だから分からないと
>>389
>そこでメソッドを抜けてるわけじゃない。ただスレッドの占有を止めるだけ
でも、test()が終了していないのにTestAsync()が終了するのはなぜ?
retにはTask<int>型が入って、Result未設定になってるけど。
391デフォルトの名無しさん (アウアウウー Sac7-eilh)
2018/11/06(火) 21:02:02.39ID:KZ0uzBLfa >>390
試したコードを貼ってくれないか?
皆が >>381 の書き込みを見て想像したコードは
https://ideone.com/gVD0Ob こんなのだと思うけど
ご覧の通りTask<int>からintには変換できないし、intはawait出来ない
試したコードを貼ってくれないか?
皆が >>381 の書き込みを見て想像したコードは
https://ideone.com/gVD0Ob こんなのだと思うけど
ご覧の通りTask<int>からintには変換できないし、intはawait出来ない
392デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 21:05:03.24ID:KNaAB8gP0393デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:06:23.76ID:QbvaQ8DKa 初心者には難しというか誰に対しても理念をしっかり理解しないと使えないし
それでも誤用してる人も多い
スレッドの流れもわからないでいろいろバグコード作ってて後で思ったように動かなくなる
それよりもTaskを使ったシグネチャーで一貫性が損なわれてるのが気持ち悪い
あとから出てきた言語などではasync awaitはきれいになってたりする
それまでが暗黒だったのですこし明るくなっただけでもすごく進歩してると思い込んでる
それでも誤用してる人も多い
スレッドの流れもわからないでいろいろバグコード作ってて後で思ったように動かなくなる
それよりもTaskを使ったシグネチャーで一貫性が損なわれてるのが気持ち悪い
あとから出てきた言語などではasync awaitはきれいになってたりする
それまでが暗黒だったのですこし明るくなっただけでもすごく進歩してると思い込んでる
394デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:11:19.20ID:QbvaQ8DKa awaitは一次的に呼び出し元へ順繰りにreturnするもの
395デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:16:42.51ID:QbvaQ8DKa kekyoの丼は昔昔async/awaitでおかしな記事を書いてたな
MVPなのにこの程度の理解なのかと思った
MVPなのにこの程度の理解なのかと思った
396デフォルトの名無しさん (ワッチョイ 5a9b-qaUX)
2018/11/06(火) 21:17:05.17ID:J1JRrSzC0 @座標A(50,50)
座標B(100,50)
にABを結ぶ下半分の半円。
A座標C(100,50)
座標D(50,50)
にCDを結ぶ上半分の半円
まず、正方形の左上、右下の座標をangleに入れ
@angle=(50,25,100,75)
Aangle=(50,25,100,75)
@DrawArc(Pen, angle, -180, -180);
ADrawArc(Pen, angle, -180, 180);
これで合ってます?
よく解らない点
angle座標の計算式
半円の角度の意味がいまいち分からないです。
座標B(100,50)
にABを結ぶ下半分の半円。
A座標C(100,50)
座標D(50,50)
にCDを結ぶ上半分の半円
まず、正方形の左上、右下の座標をangleに入れ
@angle=(50,25,100,75)
Aangle=(50,25,100,75)
@DrawArc(Pen, angle, -180, -180);
ADrawArc(Pen, angle, -180, 180);
これで合ってます?
よく解らない点
angle座標の計算式
半円の角度の意味がいまいち分からないです。
397デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 21:17:13.88ID:KNaAB8gP0 >>391
>試したコードを貼ってくれないか?
長いソースなんでそれは無理だけど
単純に簡略化したつもりだったんだけど
実際にはmain()でなくGUI
Task<int>ではなく、Task<bool>本質的には変えてないつもりだったんだけど…
悪いけど
ちょっと、時間もらって 明日に仕切り直しということで
>試したコードを貼ってくれないか?
長いソースなんでそれは無理だけど
単純に簡略化したつもりだったんだけど
実際にはmain()でなくGUI
Task<int>ではなく、Task<bool>本質的には変えてないつもりだったんだけど…
悪いけど
ちょっと、時間もらって 明日に仕切り直しということで
398デフォルトの名無しさん (ワッチョイ 4e9a-Y/6i)
2018/11/06(火) 21:31:56.37ID:8KRwrCef0 >>396
>angle座標の計算式
何の計算式が欲しいのかよくわからない。angle=四角に内接する楕円がベースになる
ここを参照
https://dobon.net/vb/dotnet/graphics/drawrectangle.html
ここだとRectAngleの座標をそのまま入れているけど意味は変わらない
水平方向右が角度開始位置
実行できる環境が無いのでなければ数値変えて自分で動かしてみる方が早く理解できる
>angle座標の計算式
何の計算式が欲しいのかよくわからない。angle=四角に内接する楕円がベースになる
ここを参照
https://dobon.net/vb/dotnet/graphics/drawrectangle.html
ここだとRectAngleの座標をそのまま入れているけど意味は変わらない
水平方向右が角度開始位置
実行できる環境が無いのでなければ数値変えて自分で動かしてみる方が早く理解できる
399デフォルトの名無しさん (ワッチョイ 1ae3-aMe6)
2018/11/06(火) 21:42:34.61ID:pbTvUYL60 >>396
c#と何が関係あるの?
c#と何が関係あるの?
400デフォルトの名無しさん (スップ Sdba-vbIu)
2018/11/06(火) 21:44:58.51ID:ahLHh+wMd401デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:44:59.53ID:QbvaQ8DKa ボタン押したらクリックイベントハンドラ(メソッド)で重い処理をしてGUIが固まってしまう
これを何とかするにはGUIに制御を返してやらないといけない
awaitではasyncメソッドの中のどこかのレベルで新しいTaskを作って
そっちで別の処理をさせて上のメソッドに制御を戻すことができる
必ずではないけどawaitに出会ったらスレッドは結果としてそのメソッドを離脱して
上位のコードを実行する
awaitに出会ったらスレッドは処理が終わるのを待ってはいない!(重要)
この場合はGUIに制御が戻ってる
awaitの戻り値が用意できたら良きタイミングでまたGUIから処理(スレッド)をかっぱらって続きを実行させるだけ!
これを何とかするにはGUIに制御を返してやらないといけない
awaitではasyncメソッドの中のどこかのレベルで新しいTaskを作って
そっちで別の処理をさせて上のメソッドに制御を戻すことができる
必ずではないけどawaitに出会ったらスレッドは結果としてそのメソッドを離脱して
上位のコードを実行する
awaitに出会ったらスレッドは処理が終わるのを待ってはいない!(重要)
この場合はGUIに制御が戻ってる
awaitの戻り値が用意できたら良きタイミングでまたGUIから処理(スレッド)をかっぱらって続きを実行させるだけ!
402デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:48:32.21ID:QbvaQ8DKa 昔?はmainでawaitできなかった
一次的にでもmainを抜けると言うことはプログラム終了だもの
一次的にでもmainを抜けると言うことはプログラム終了だもの
403デフォルトの名無しさん (アウアウエー Sa52-uVrJ)
2018/11/06(火) 21:48:56.89ID:Irg6T2PQa >>396
(1) まず最終的に描きたいパイをパイに切り取る前の全体の円(楕円)を考えて、
(2) その円(楕円)に外接する長方形を考える
こういう順番だと思うよ
DrawArcが引数に要求するのはその外接する長方形と、時計の3時からの開始位置の角度と
パイの角度だと思う
使ったことはないがw
(1) まず最終的に描きたいパイをパイに切り取る前の全体の円(楕円)を考えて、
(2) その円(楕円)に外接する長方形を考える
こういう順番だと思うよ
DrawArcが引数に要求するのはその外接する長方形と、時計の3時からの開始位置の角度と
パイの角度だと思う
使ったことはないがw
404デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 21:56:24.33ID:QbvaQ8DKa 以下はよく見かける間違い
awaitに出会ったらGUIに処理を渡します
awaitに出会ったらそこで待機して結果が出るのを待ちます
awaitに出会ったらGUIに処理を渡します
awaitに出会ったらそこで待機して結果が出るのを待ちます
405デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 22:26:22.46ID:KNaAB8gP0 作ったんで、書き込もうとするんだけど 書き込めない
HTTP 403 Forbiddened が出る。
HTTP 403 Forbiddened が出る。
406デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 22:37:57.23ID:KNaAB8gP0 これって、まじなソースコードって書けないの?
全角に変換してみた
public Form1()
{
InitializeComponent();
this.AllowDrop = true;
wtest();
}
void wtest()
{
var ret=TestAsync();
System.Diagnostics.Debug.WriteLine(ret.ToString());
}
async Task<bool> TestAsync()
{
bool ret = false;
var task = Task.Run(() => {
System.Threading.Thread.Sleep(10 * 1000);
ret = true;
});
await task;
return ret;
}
全角に変換してみた
public Form1()
{
InitializeComponent();
this.AllowDrop = true;
wtest();
}
void wtest()
{
var ret=TestAsync();
System.Diagnostics.Debug.WriteLine(ret.ToString());
}
async Task<bool> TestAsync()
{
bool ret = false;
var task = Task.Run(() => {
System.Threading.Thread.Sleep(10 * 1000);
ret = true;
});
await task;
return ret;
}
407406 (ワッチョイ 039f-MyS3)
2018/11/06(火) 22:39:33.41ID:KNaAB8gP0 半角に変換して試してw
試したのは、GUIなのでFormアプリで作ってみた
で、疑問点は、
1.これがそのまま動くこと。var ret=TestAsync();でコンパイラーエラーの方が納得する
理由は、retに値が設定出来ないから。そのうえでTestAsync()呼び出しにawaitを強制するとか
2.await taskでTestAsnc()で待ちが入ると、その上位のメソッドの処理に流れが移ること
要するに流れが直観的でないと感じる。ただし、この流れはがTestAsyncがasync voidならまだ納得がいく
試したのは、GUIなのでFormアプリで作ってみた
で、疑問点は、
1.これがそのまま動くこと。var ret=TestAsync();でコンパイラーエラーの方が納得する
理由は、retに値が設定出来ないから。そのうえでTestAsync()呼び出しにawaitを強制するとか
2.await taskでTestAsnc()で待ちが入ると、その上位のメソッドの処理に流れが移ること
要するに流れが直観的でないと感じる。ただし、この流れはがTestAsyncがasync voidならまだ納得がいく
408デフォルトの名無しさん (ワッチョイ 27c3-YdG1)
2018/11/06(火) 22:49:42.00ID:jcRa2hVA0409デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 22:54:04.17ID:QbvaQ8DKa 1.
var ret=TestAsync();でコンパイラーエラーがでるとtaskをそのまま受けたい場合に困る
retはただのTask<bool>であってそいつのResultじゃないからそれでいいだろう
2.
そういう流れで処理をしたいのでawaitを使ってる
それが疑問に思うならスタートがまちがってる
var ret=TestAsync();でコンパイラーエラーがでるとtaskをそのまま受けたい場合に困る
retはただのTask<bool>であってそいつのResultじゃないからそれでいいだろう
2.
そういう流れで処理をしたいのでawaitを使ってる
それが疑問に思うならスタートがまちがってる
410406 (ワッチョイ 039f-MyS3)
2018/11/06(火) 22:54:57.62ID:KNaAB8gP0411デフォルトの名無しさん (ワッチョイ 8a7e-zV7r)
2018/11/06(火) 22:54:58.69ID:tGae1nmw0 >>407
asyncメソッドと言っても戻り値は単なるTask<bool>だし
Taskにawaitが強制されたらTaskを待つ場所を選べなくなる
動作的に言えばawaitした時点で抜けて後に再開しようとする
ILSpy 3.0.1とかでasync/awaitデコンパイルを無効にして
ビルド後のバイナリからメソッド内容を見てみるといい
まずTask.ContinueWith()+TaskScheduler.FromCurrentSynchronizationContext()とか
従来の書き方を学んだ方が良いと思う、コルーチン的な物の前に
asyncメソッドと言っても戻り値は単なるTask<bool>だし
Taskにawaitが強制されたらTaskを待つ場所を選べなくなる
動作的に言えばawaitした時点で抜けて後に再開しようとする
ILSpy 3.0.1とかでasync/awaitデコンパイルを無効にして
ビルド後のバイナリからメソッド内容を見てみるといい
まずTask.ContinueWith()+TaskScheduler.FromCurrentSynchronizationContext()とか
従来の書き方を学んだ方が良いと思う、コルーチン的な物の前に
412デフォルトの名無しさん (ワッチョイ 4e81-mm7G)
2018/11/06(火) 22:55:30.26ID:LW+aJyL/0 varについてすら理解できてないじゃん
なんで406でのvarが381でintに置き換えられるって思ったの?
なんで406でのvarが381でintに置き換えられるって思ったの?
413デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 22:57:50.35ID:QbvaQ8DKa 重い処理Aをやってる最中にBもやりたいのでawait asyncを使ってる
重い処理Aの次にCをやるのとBが実行されるのを混同してはいけない
重い処理Aの次にCをやるのとBが実行されるのを混同してはいけない
414デフォルトの名無しさん (ワッチョイ 97d3-QXT6)
2018/11/06(火) 22:58:30.18ID:hiXG5OoB0 全 角 に 変 換 し て み た
やべえコイツ思っていた以上に馬鹿だぞ!!!
int に変換できるとか言ってたらvarで受けてるし面白すぎんだろ
やべえコイツ思っていた以上に馬鹿だぞ!!!
int に変換できるとか言ってたらvarで受けてるし面白すぎんだろ
415デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:01:12.62ID:QbvaQ8DKa 初心者あおりみっともない
しかも前のレスは初心者には理解できないだろ
しかも前のレスは初心者には理解できないだろ
416デフォルトの名無しさん (ワッチョイ 039f-MyS3)
2018/11/06(火) 23:01:39.73ID:KNaAB8gP0417デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:04:27.04ID:QbvaQ8DKa418デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:07:21.50ID:QbvaQ8DKa 重い処理Aをタスクでやって同時にメインのスレッドを実行し続けるのが目的なので
上位のメソッドが引き続き実行されるのが期待の動作
awaitされた重い処理Aの続きのCが実行されるのはまた別の話
上位のメソッドが引き続き実行されるのが期待の動作
awaitされた重い処理Aの続きのCが実行されるのはまた別の話
419デフォルトの名無しさん (アウアウウー Sac7-MyS3)
2018/11/06(火) 23:13:59.85ID:QbvaQ8DKa 1. 順番に処理をやってるけど別の処理も同時にやりたいな A B
2. その処理が終わったらそのタイミングで別の処理をやりたいな A → C
というのを書くのが従来の非同期処理だと面倒なのでawait asyncを使ってる
2. その処理が終わったらそのタイミングで別の処理をやりたいな A → C
というのを書くのが従来の非同期処理だと面倒なのでawait asyncを使ってる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
