!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part141
http://mevius.5ch.net/test/read.cgi/tech/1544839627/
■コードを貼る場合は↓を使いましょう。
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/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part142
■ このスレッドは過去ログ倉庫に格納されています
1名無C ◆jPpg5.obl6 (ワッチョイ 762c-FuHz)
2019/03/07(木) 06:35:41.12ID:6L3KEJfe0382デフォルトの名無しさん (ワッチョイ b15f-La48)
2019/04/16(火) 08:37:21.73ID:bBG3RNJT0 Windows7のサポートが切れれば少しはましになるのかねぇ
383デフォルトの名無しさん (ワッチョイ 5963-yBH7)
2019/04/16(火) 09:11:39.30ID:gry//OiE0 >>377
async awaitへようこそ
async awaitへようこそ
384デフォルトの名無しさん (スップ Sd73-OlUL)
2019/04/16(火) 12:31:57.15ID:5XyUIsTTd >>381
だから「C#のバージョン上げるのは」って言ってんのに
だから「C#のバージョン上げるのは」って言ってんのに
385デフォルトの名無しさん (オッペケ Sr85-figT)
2019/04/16(火) 14:23:13.78ID:o1OTQxfgr とりあえずVSのバージョンだけでもあげてほしいわ
今時2008とかもう
今時2008とかもう
386デフォルトの名無しさん (ワッチョイ 1161-XGqV)
2019/04/16(火) 15:21:56.74ID:gbkfFEj/0 >>385
こっそりあげちゃえよ。だれもお前のことなんかみてないからさ。
こっそりあげちゃえよ。だれもお前のことなんかみてないからさ。
387デフォルトの名無しさん (ワッチョイ 5190-ifKs)
2019/04/16(火) 17:28:56.19ID:CzwWdC590 2015ってアンインストールしても平気かな。SSDの空きがかつかつで2019インストールするなら2015は消したい
388デフォルトの名無しさん (ワッチョイ 1161-U5P5)
2019/04/16(火) 18:43:16.58ID:HeVWn8Fl0 VS2010からVS2017に上げたら変数名に全角の・使ってるところがビルドエラーになったわ。
こんなの変数名に使うなよと思いながらVS2010で名前変えまくった。
こんなの変数名に使うなよと思いながらVS2010で名前変えまくった。
389デフォルトの名無しさん (アウアウクー MM05-Vj1b)
2019/04/16(火) 18:54:44.72ID:csRNrKVvM フォームから自動生成したイベントハンドラの頭文字が大文字じゃねぇぞって怒られてるんだけどデフォルトでこうなの?
390デフォルトの名無しさん (ワッチョイ 13ad-OlUL)
2019/04/16(火) 19:43:25.05ID:4DXe6mce0391デフォルトの名無しさん (ワッチョイ fbfc-LJPv)
2019/04/17(水) 20:49:20.12ID:WkJZEAk70 ドット絵エディタを作りたいんですが、win formでやってます
ピクセルを描くベースとなるフォームはどれを使用すればよいのでしょうか。
ピクセルを描くベースとなるフォームはどれを使用すればよいのでしょうか。
392デフォルトの名無しさん (ワッチョイ 13a5-yqpC)
2019/04/17(水) 20:56:19.46ID:SfPYWsjk0 フォームに直書きでいいよ
393デフォルトの名無しさん (ワッチョイ 8b7b-y/aS)
2019/04/17(水) 20:59:20.56ID:VDkzUi/q0394デフォルトの名無しさん (ワッチョイ d901-yqpC)
2019/04/17(水) 21:12:48.03ID:QwWDImoN0395デフォルトの名無しさん (ワッチョイ fbfc-LJPv)
2019/04/17(水) 21:28:00.17ID:WkJZEAk70 pictureboxかpaintですね ありがとうございます
396デフォルトの名無しさん (ワッチョイ 8101-+1ox)
2019/04/18(木) 00:15:51.35ID:xpC+XoNH0 textboxで描く
397デフォルトの名無しさん (ワッチョイ 36fc-HmQt)
2019/04/18(木) 06:13:29.99ID:VndYiJ+Y0 コントロールとクリックイベントはどのような関係になっているんでしょうか。
コントロールは関数で、そのローカル関数がクリックイベントでしょうか?
コントロールは関数で、そのローカル関数がクリックイベントでしょうか?
398デフォルトの名無しさん (ワッチョイ 5e63-Pr8H)
2019/04/18(木) 08:27:46.76ID:KcatLawH0 インテリセンス表示してみろ
vscodeとかならリファレンス表示しろ
Control "クラス" って書いてあるだろうが
vscodeとかならリファレンス表示しろ
Control "クラス" って書いてあるだろうが
399デフォルトの名無しさん (ワッチョイ 36fc-HmQt)
2019/04/18(木) 10:05:51.26ID:VndYiJ+Y0 クラスですか ごめんなさい
400デフォルトの名無しさん (ワッチョイ 5e63-8I1V)
2019/04/18(木) 17:04:33.74ID:/n+AA5ti0 >>399
クリックイベントなどのイベントはそのクラスのデリゲートな
クリックイベントなどのイベントはそのクラスのデリゲートな
401デフォルトの名無しさん (ワッチョイ 36fc-HmQt)
2019/04/18(木) 18:55:27.19ID:VndYiJ+Y0 デリゲートって語をはじめてしりました
402デフォルトの名無しさん (ワッチョイ ee0d-o4pp)
2019/04/18(木) 19:28:26.95ID:fqeeOSlB0 デリケートな話題だからね
403デフォルトの名無しさん (ワッチョイ 1261-YIQo)
2019/04/18(木) 19:38:07.87ID:cTBQXOBu0 デリケートゾーンの話ですか?
404デフォルトの名無しさん (ブーイモ MMb2-V4ls)
2019/04/18(木) 19:57:39.62ID:YCaR8eKbM 最初は、関数ポインタ+アルファぐらいに思っておけば
後で騙された〜になるけど
後で騙された〜になるけど
405デフォルトの名無しさん (ワッチョイ 655f-8I1V)
2019/04/18(木) 23:09:25.88ID:4whWZ0bM0 >>400
イベントとデリゲートは全く同じじゃないけどな
イベントとデリゲートは全く同じじゃないけどな
406デフォルトの名無しさん (ワッチョイ 8101-+1ox)
2019/04/18(木) 23:33:46.05ID:xpC+XoNH0 ポインタなんて今時通じるのか?
407デフォルトの名無しさん (ワッチョイ 6e7c-lfmU)
2019/04/19(金) 09:21:10.96ID:okUcwqho0 Javaでnull参照した時にNullPointerException投げてくるうちは現役だろ(適当
408245 (ブーイモ MMd5-nTKY)
2019/04/19(金) 12:51:17.11ID:5BNgMycMM ぬるぽ
409デフォルトの名無しさん (ワッチョイ c52b-hooH)
2019/04/19(金) 16:10:17.23ID:OM7ktdHt0 ぬるぽ
410デフォルトの名無しさん (ワッチョイ 092d-RDgi)
2019/04/19(金) 21:56:33.56ID:5QVRwjzm0 List<T>から要素を1つずつ要素を取り出して処理し、例外が起きたらその要素だけリストから消したいんだけどさあ
なんかいい手段ってないのかな?
雰囲気としてはこんな感じのが書きたいんだけど・・・・おらの頭じゃうまく書けんだ・・・・
foreach(var o in listOfObject){
try{ 例外処理以外では対処が難しい怪しい処理(o); }
catch{ 例外が起きた項目だけlistOfObjectから消したいが、ちゃんとforeachも回って欲しい(); }
}
なんかいい手段ってないのかな?
雰囲気としてはこんな感じのが書きたいんだけど・・・・おらの頭じゃうまく書けんだ・・・・
foreach(var o in listOfObject){
try{ 例外処理以外では対処が難しい怪しい処理(o); }
catch{ 例外が起きた項目だけlistOfObjectから消したいが、ちゃんとforeachも回って欲しい(); }
}
411デフォルトの名無しさん (ワッチョイ 5e2c-6isy)
2019/04/19(金) 22:02:58.03ID:MllfoE8V0 新しいList<T>作ってcatchしたときにAddして
foreach終わった後でRemoveしていく
foreach終わった後でRemoveしていく
412デフォルトの名無しさん (ワッチョイ 5e7b-ImJN)
2019/04/19(金) 22:04:41.49ID:4Fr35pSP0413デフォルトの名無しさん (ワッチョイ 5e2c-6isy)
2019/04/19(金) 22:04:44.06ID:MllfoE8V0 var erroredItems = new List<Hoge>();
foreach (var item in originalList) {
try { ... }
catch { erroredItems.Add(item); }
}
foreach (var item in erroredItems) {
originalList.Remove(item);
}
foreach (var item in originalList) {
try { ... }
catch { erroredItems.Add(item); }
}
foreach (var item in erroredItems) {
originalList.Remove(item);
}
414デフォルトの名無しさん (ワッチョイ 092d-RDgi)
2019/04/19(金) 22:09:40.78ID:5QVRwjzm0 ありがとう
こうやってやるもんなのか
こうやってやるもんなのか
415デフォルトの名無しさん (ワッチョイ 7247-ctQZ)
2019/04/19(金) 22:27:07.32ID:i0tIRf8t0 listOfObject.RemoveAll(obj =>
{
try
{
・・・・・・なんか処理
return false;
}
catch
{
return true;
}
});
{
try
{
・・・・・・なんか処理
return false;
}
catch
{
return true;
}
});
416デフォルトの名無しさん (ワッチョイ 92e0-JNgg)
2019/04/20(土) 00:02:36.27ID:/zNBD6gY0 リストに追加前にtry処理したらダメなん?
それができないなら俺も415のやり方が良い
それができないなら俺も415のやり方が良い
417デフォルトの名無しさん (アウアウエー Sada-ukl2)
2019/04/20(土) 00:10:17.26ID:4fcRoJkza public class MyUtil {
public static bool Try(Action a) {
try { a?.Invoke(); return true; }
catch { return false; }
}}
var b = a.Where(x => MyUtil.Try(() => ThrowableMethod(x)))
.ToList();
public static bool Try(Action a) {
try { a?.Invoke(); return true; }
catch { return false; }
}}
var b = a.Where(x => MyUtil.Try(() => ThrowableMethod(x)))
.ToList();
418デフォルトの名無しさん (ブーイモ MMd5-pikq)
2019/04/20(土) 06:45:01.92ID:eu9xvtsyM >>408
ガッ
ガッ
419デフォルトの名無しさん (ブーイモ MMd5-pikq)
2019/04/20(土) 06:45:18.46ID:eu9xvtsyM >>409
ガッ
ガッ
420デフォルトの名無しさん (ワッチョイ 5561-YIQo)
2019/04/20(土) 08:09:20.70ID:u/QGNgma0 このスレ的にはぬるぽではなくぬるりなのか。エロいな。
421デフォルトの名無しさん (ワッチョイ 92ad-61/s)
2019/04/20(土) 08:43:35.43ID:ShWYWHRt0 配列のソートのアルゴリズムが難しくて覚えられないんですが
簡単な書き方はりますか?
簡単な書き方はりますか?
422デフォルトの名無しさん (ブーイモ MMa6-rGl6)
2019/04/20(土) 08:52:13.85ID:tgvbScEyM423デフォルトの名無しさん (ワッチョイ a242-YIQo)
2019/04/20(土) 09:08:29.42ID:Q85hwvCt0 >>410
foreach(var o in listOfObject){を
foreach(var o in listOfObject.ToArray()){
と配列にコピーしてから実行するのが定石です
そのループの中では既に列挙は終わっているから
listOfObjectにAddしてもRemoveしても例外は発生しないし列挙の順番にも影響を与えません
foreach(var o in listOfObject){を
foreach(var o in listOfObject.ToArray()){
と配列にコピーしてから実行するのが定石です
そのループの中では既に列挙は終わっているから
listOfObjectにAddしてもRemoveしても例外は発生しないし列挙の順番にも影響を与えません
424デフォルトの名無しさん (ワッチョイ 6502-Prtq)
2019/04/20(土) 09:12:26.10ID:Q8Lkjfvy0425デフォルトの名無しさん (アウアウエー Sada-4dYu)
2019/04/20(土) 09:15:16.95ID:dmSDGLr5a >>424
いやソートアルゴリズムの殆どは特定のインデックスに対するランダムアクセスにO(N)を仮定するから配列前提だぞ
いやソートアルゴリズムの殆どは特定のインデックスに対するランダムアクセスにO(N)を仮定するから配列前提だぞ
426425 (アウアウエー Sada-4dYu)
2019/04/20(土) 09:15:47.20ID:dmSDGLr5a 間違えたO(1)
427デフォルトの名無しさん (アウアウエー Sada-shJk)
2019/04/20(土) 12:09:52.47ID:IppyQHdna428デフォルトの名無しさん (スププ Sdb2-Sl/5)
2019/04/20(土) 12:52:51.24ID:XrXcMVKPd >>415が一番シンプルだな
429デフォルトの名無しさん (スップ Sd12-yS2j)
2019/04/20(土) 13:49:32.83ID:ajzSwZvNd 処理と例外が出たものを除去は別の仕事だから処理も分離してるほうが好き
430デフォルトの名無しさん (アウアウエー Sada-ukl2)
2019/04/20(土) 13:51:03.66ID:4fcRoJkza そもそもフィルタかけて何に使うんだ?
431デフォルトの名無しさん (スププ Sdb2-Sl/5)
2019/04/20(土) 13:53:51.78ID:LQSO4VHxd >>415が質問者のしたいことにドンピシャなのに初心者スレだからラムダ式にアレルギーある奴が多いのかな
432デフォルトの名無しさん (ワッチョイ f57c-ZG7F)
2019/04/20(土) 14:01:01.21ID:bN8wmmjE0 一番まともな解答にはレス付けないのが2ちゃん式
433デフォルトの名無しさん (ワッチョイ 655f-8I1V)
2019/04/20(土) 14:06:22.07ID:axr9T2Wu0434デフォルトの名無しさん (ワッチョイ 5e2c-LwVf)
2019/04/20(土) 14:19:22.63ID:rcvSJkam0 まず、2分探索を、2分ヒープで作れば?
O(log N)
2^10 = 1,024 だから、千のデータを、10回で探索できる。
2^20 = 百万 のデータは、20回!
リストは、次の要素しかわからないから、ランダムアクセスは、O(N) になる。
例えば、1から5を見つけるのに、1,2,3,4,5 と、リンクをたどらないといけない
O(1)にするには、アドレスは計算式で求められるものだけ。
各要素が4バイト使うなら、1が100番地として、5は116番地みたいに
O(log N)
2^10 = 1,024 だから、千のデータを、10回で探索できる。
2^20 = 百万 のデータは、20回!
リストは、次の要素しかわからないから、ランダムアクセスは、O(N) になる。
例えば、1から5を見つけるのに、1,2,3,4,5 と、リンクをたどらないといけない
O(1)にするには、アドレスは計算式で求められるものだけ。
各要素が4バイト使うなら、1が100番地として、5は116番地みたいに
435デフォルトの名無しさん (ワッチョイ 92ad-61/s)
2019/04/20(土) 16:56:48.87ID:ShWYWHRt0 >>427
覚える必要ないんですか…List型のソートメソッドを使っていても後々問題にならないですかね
覚える必要ないんですか…List型のソートメソッドを使っていても後々問題にならないですかね
436デフォルトの名無しさん (ワッチョイ 7252-U8iM)
2019/04/20(土) 17:40:05.04ID:tqoqa3JD0 >>435
基本的なデータ構造とアルゴリズムは一通り理解して自分で書けるようになっておくといいぞ。
標準的な物はライブラリ等で用意されているから実際に業務等でコードを書くときはそれを使うが、独自の問題の解法を自分で考える際に、適切な速度や使用リソース量と工数の兼ね合いで良い方法を選択するには、基本は一通り押さえておく必要があるよ。
基本的なデータ構造とアルゴリズムは一通り理解して自分で書けるようになっておくといいぞ。
標準的な物はライブラリ等で用意されているから実際に業務等でコードを書くときはそれを使うが、独自の問題の解法を自分で考える際に、適切な速度や使用リソース量と工数の兼ね合いで良い方法を選択するには、基本は一通り押さえておく必要があるよ。
437デフォルトの名無しさん (ワッチョイ 2517-YIQo)
2019/04/20(土) 20:18:25.55ID:zIfu5btc0 必要な時に必要なものを覚えるだけでOK
最初から全部覚えようとしなくてもいいよ
最初から全部覚えようとしなくてもいいよ
438デフォルトの名無しさん (ワッチョイ 7247-Sl/5)
2019/04/20(土) 20:23:09.94ID:qqngOIWj0 ソートに関しては基本情報処理技術者試験の教科書でも読めばいいんじゃないの
439デフォルトの名無しさん (アウアウウー Sacd-hooH)
2019/04/20(土) 21:14:17.27ID:f5BR4Kwsa ソートは自分なりに考えてlコードを書いてみてその後にいろいろ学ぶと勉強しやすい
440デフォルトの名無しさん (アウアウエー Sada-PIYw)
2019/04/21(日) 08:02:20.34ID:qTT7Abroa 自前で書くソート処理と、.NET Frameworkに実装されてる(Microsoftのプロフェッショナルが実装した)ソート処理、
どっちがより高速でバグが少ないと思う?
https://referencesource.microsoft.com/#mscorlib/system/array.cs,d076876f5fbf4eec
↑ここから先に書かれている処理よりも優れたソート処理を自分で書けるならともかく、
そうでなければおとなしく出来合いのソート処理を利用するほうが無難だと思うけど
どっちがより高速でバグが少ないと思う?
https://referencesource.microsoft.com/#mscorlib/system/array.cs,d076876f5fbf4eec
↑ここから先に書かれている処理よりも優れたソート処理を自分で書けるならともかく、
そうでなければおとなしく出来合いのソート処理を利用するほうが無難だと思うけど
441デフォルトの名無しさん (ワッチョイ 12ad-XxWr)
2019/04/21(日) 09:21:47.18ID:enjRZRrv0 >>440
出来合いのソート処理を利用するなとか誰か言ってんの?
出来合いのソート処理を利用するなとか誰か言ってんの?
442デフォルトの名無しさん (ワッチョイ 6963-pikq)
2019/04/21(日) 09:22:37.85ID:F9kXeXwV0 独習3版読んでないとーしろはqueueも実装できないし、回帰とかも理解しないんだろ。
443デフォルトの名無しさん (アウアウウー Sacd-hooH)
2019/04/21(日) 09:39:42.10ID:+WROkW6ha >>440
初心者がソートを勉強しないと自分の書いたコードがなぜ遅いかわからない
ソートが魔法か何かで何でも一瞬で並び替えられると思ってしまうと終わり
そこから進展はない
ソートの回数を減らすように考えたりソート自体を行わないでうまく処理することを学ばないといけない
初心者がソートを勉強しないと自分の書いたコードがなぜ遅いかわからない
ソートが魔法か何かで何でも一瞬で並び替えられると思ってしまうと終わり
そこから進展はない
ソートの回数を減らすように考えたりソート自体を行わないでうまく処理することを学ばないといけない
444デフォルトの名無しさん (ワッチョイ 515f-WJ29)
2019/04/21(日) 09:43:13.42ID:cNLTxFDL0 ソートがボトルネックになった時に最適化を迫られたら弄るしかないじゃんね
445デフォルトの名無しさん (アウアウウー Sacd-hooH)
2019/04/21(日) 09:50:14.96ID:+WROkW6ha ソートがボトルネックになったらじゃなくて普通にソートを使うときには必ず気に掛けるべき
ループの中にソート入れてるコードがあったりする
ループ出た後に一度やればいいだけなのにと思うがそういう所に思いが至らないんだろう
ループの中にソート入れてるコードがあったりする
ループ出た後に一度やればいいだけなのにと思うがそういう所に思いが至らないんだろう
446デフォルトの名無しさん (ワッチョイ 5561-oal8)
2019/04/21(日) 10:02:50.79ID:9BhkjmpP0 今なんねーよ流石に
447デフォルトの名無しさん (アウアウウー Sacd-hooH)
2019/04/21(日) 10:09:09.80ID:+WROkW6ha メソッドの中でソートして戻り値返してるのにもらった側でもソートしたりとか
無駄なことをする可能性はどこにでもある
他人に見られたときにこいつ馬鹿だなと思われないようなコードを書く練習をしよう
無駄なことをする可能性はどこにでもある
他人に見られたときにこいつ馬鹿だなと思われないようなコードを書く練習をしよう
448デフォルトの名無しさん (ワッチョイ 1261-YIQo)
2019/04/21(日) 10:17:01.49ID:HfCJ1F6L0 listのsortメソッドって安定ソートだっけ?
449デフォルトの名無しさん (アウアウエー Sada-4dYu)
2019/04/21(日) 10:19:40.66ID:8e51ow7Fa450デフォルトの名無しさん (アウアウウー Sacd-hooH)
2019/04/21(日) 10:24:24.53ID:+WROkW6ha 小手先のハックじゃなくて基本だろ
どこでソートするかなんて基本中の基本
どこでソートするかなんて基本中の基本
451デフォルトの名無しさん (ドコグロ MM71-4dYu)
2019/04/21(日) 10:25:31.30ID:+0R+dzN2M 無意味な仕事を無くすように働きかけるのではなく、無意味な仕事を無駄に最適化しようとするのは低学歴な意識高い系プログラマあるある
452デフォルトの名無しさん (アウアウエー Sada-nHqp)
2019/04/21(日) 11:39:31.85ID:cgZSyzeqa >>448
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.sort
> This implementation performs an unstable sort
ついでにいうとArray.Sortも不安定ソートで、Enumerable.OrderByと.ThenByは安定ソート
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.sort
> This implementation performs an unstable sort
ついでにいうとArray.Sortも不安定ソートで、Enumerable.OrderByと.ThenByは安定ソート
453デフォルトの名無しさん (ワッチョイ f642-YIQo)
2019/04/21(日) 12:31:18.60ID:3jwnQLuZ0 ソートはプログラムを覚えるために勉強するもので
実用上はライブラリ使えばいい
ただ、勉強するネタとしては割と上質なもの
実用上はライブラリ使えばいい
ただ、勉強するネタとしては割と上質なもの
454デフォルトの名無しさん (ワッチョイ 5e63-Pr8H)
2019/04/21(日) 12:34:57.35ID:y1/myRC20 (回答する方も)初心者スレらしくていい流れだね
455デフォルトの名無しさん (ワッチョイ 092d-RDgi)
2019/04/21(日) 12:46:19.25ID:WZ0UQqME0 こういうの、listにロックをかけたのに何で同listを使う後続処理がすぐ実行されちゃうの?
https://paiza.io/projects/e/EbjQiWv8ebNkW4bbkAY_YQ
using System.Collections.Generic;
using System.Threading.Tasks;
using System;
public class Hello{
public static void Main(){
var list = new List<int>();
for(int i=1; i<=1000; i++)
{
list.Add(i);
}
Task.Run(()=>{
lock(list){
Task.Delay(10000);
}
});
Console.WriteLine(list[123]);
}
}
https://paiza.io/projects/e/EbjQiWv8ebNkW4bbkAY_YQ
using System.Collections.Generic;
using System.Threading.Tasks;
using System;
public class Hello{
public static void Main(){
var list = new List<int>();
for(int i=1; i<=1000; i++)
{
list.Add(i);
}
Task.Run(()=>{
lock(list){
Task.Delay(10000);
}
});
Console.WriteLine(list[123]);
}
}
456デフォルトの名無しさん (ワッチョイ 5561-oal8)
2019/04/21(日) 12:51:36.48ID:9BhkjmpP0 まだ、そんな産廃機能いじってんのか
457デフォルトの名無しさん (アウアウエー Sada-nHqp)
2019/04/21(日) 13:00:01.62ID:cgZSyzeqa >>455
https://ufcpp.net/study/csharp/sp_thread.html#lock
lock文はMonitor.EnterやMonitor.Exitを使った糖衣構文であって
Monitor.Enterでロックを取得する(=既にロックされているなら、それが解放されるまで待つ)
例示コードではTask中ではlockしているもののConsole.WriteLine箇所はlockがないので、すぐに実行される
https://ufcpp.net/study/csharp/sp_thread.html#lock
lock文はMonitor.EnterやMonitor.Exitを使った糖衣構文であって
Monitor.Enterでロックを取得する(=既にロックされているなら、それが解放されるまで待つ)
例示コードではTask中ではlockしているもののConsole.WriteLine箇所はlockがないので、すぐに実行される
458デフォルトの名無しさん (ワッチョイ 655f-8I1V)
2019/04/21(日) 13:12:13.25ID:6I4G/mIH0459デフォルトの名無しさん (スププ Sdb2-Sl/5)
2019/04/21(日) 14:40:03.19ID:T6P0EJpRd >>441
俺だよ俺
俺だよ俺
460デフォルトの名無しさん (ワッチョイ 092d-RDgi)
2019/04/21(日) 15:32:01.70ID:WZ0UQqME0 ありがとう、このコードだと欠陥だらけなのか・・・・
使用箇所ごとにLockが必要なのか、それとタスクより先に次の行が実行されてる可能性が高いのは全く気づいてなかった
ただ、
>Task.Delay()は通常awaitして使うがlockステートメント中では使えないので、Task.Delay().Wait()するか代わりにThread.Sleep()にする。
っていうのはどういうことなの?Lock外にスレッドを返されちゃうのかしら?
使用箇所ごとにLockが必要なのか、それとタスクより先に次の行が実行されてる可能性が高いのは全く気づいてなかった
ただ、
>Task.Delay()は通常awaitして使うがlockステートメント中では使えないので、Task.Delay().Wait()するか代わりにThread.Sleep()にする。
っていうのはどういうことなの?Lock外にスレッドを返されちゃうのかしら?
461デフォルトの名無しさん (スッップ Sdb2-XxWr)
2019/04/21(日) 16:07:55.74ID:i587kr5jd >>459
よおキチガイ
よおキチガイ
462デフォルトの名無しさん (ワッチョイ 69e7-ctQZ)
2019/04/21(日) 16:32:29.56ID:RWXhngOc0 >>460
Task.Delay()だけだと完了を待ってないから、実質無いのと同じ
Task.Delay()だけだと完了を待ってないから、実質無いのと同じ
463デフォルトの名無しさん (ワッチョイ 6963-pikq)
2019/04/21(日) 17:35:25.00ID:F9kXeXwV0 >>460
ピーコックアンダーソンの非同期動画みてみればすぐに理解できるぞ
ピーコックアンダーソンの非同期動画みてみればすぐに理解できるぞ
464デフォルトの名無しさん (ワッチョイ ee0d-X0Gq)
2019/04/21(日) 22:18:43.95ID:rykfOnh80 速度がどうとか言うんだったらc#なんか使うなよと少し思いました
465デフォルトの名無しさん (ワッチョイ 31f5-DNyu)
2019/04/21(日) 22:35:33.45ID:CLsKfNj20 >>464
少しってなんだよ!
少しってなんだよ!
466デフォルトの名無しさん (ワッチョイ 1261-oal8)
2019/04/21(日) 23:52:50.47ID:SWXjVSz30 >>465
a little
a little
467デフォルトの名無しさん (ワッチョイ 5e63-Pr8H)
2019/04/22(月) 04:23:42.26ID:29e/0Uiq0 じゃあ残りの大半は何を思ってたの
468デフォルトの名無しさん (ワッチョイ b5e6-YIQo)
2019/04/22(月) 19:50:45.64ID:DglGSvcP0 ソートってポインタやmalloc, memcpyとか使ってこねくり回すのが楽しいのにC#だとイマイチだよね
469デフォルトの名無しさん (ワッチョイ c23e-HmQt)
2019/04/22(月) 20:39:27.38ID:Xu5D3g840 独自に作成したユーザコントロールをdataGridViewのカラムに追加する処理を作成しているんですが
追加したものをそのまま削除するとうまく削除出来ず、一方のユーザコントロールが必ず画面上に残ってしまうんですが
なぜでしょうか?原因がわからず悩んでいます
どなたか教えてください
//@ひとまず空のデータを作成してdataGridViewに格納
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {new DataColumn(), new DataColumn(), });
dt.Rows.Add(new object[] { "", "" });
this.dataGridView1.DataSource = dt;
//Aユーザコントロール1をdataGridViewに追加
UserControl1 userControl1 = new UserControl1();
this.dataGridView1.Controls.Add(userControl1);
userControl1.Location = this.dataGridView1.GetCellDisplayRectangle(0, 0, true).Location;
//Bユーザコントロール2をdataGridViewに追加
UserControl1 userControl2 = new UserControl1();
this.dataGridView1.Controls.Add(userControl2);
userControl2.Location = this.dataGridView1.GetCellDisplayRectangle(1, 0, true).Location;
//C追加したユーザコントロールを削除→何故かユーザコントロール2だけが残る
dataGridView1.Controls.Clear();
追加したものをそのまま削除するとうまく削除出来ず、一方のユーザコントロールが必ず画面上に残ってしまうんですが
なぜでしょうか?原因がわからず悩んでいます
どなたか教えてください
//@ひとまず空のデータを作成してdataGridViewに格納
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {new DataColumn(), new DataColumn(), });
dt.Rows.Add(new object[] { "", "" });
this.dataGridView1.DataSource = dt;
//Aユーザコントロール1をdataGridViewに追加
UserControl1 userControl1 = new UserControl1();
this.dataGridView1.Controls.Add(userControl1);
userControl1.Location = this.dataGridView1.GetCellDisplayRectangle(0, 0, true).Location;
//Bユーザコントロール2をdataGridViewに追加
UserControl1 userControl2 = new UserControl1();
this.dataGridView1.Controls.Add(userControl2);
userControl2.Location = this.dataGridView1.GetCellDisplayRectangle(1, 0, true).Location;
//C追加したユーザコントロールを削除→何故かユーザコントロール2だけが残る
dataGridView1.Controls.Clear();
470469 (ワッチョイ c23e-HmQt)
2019/04/22(月) 20:40:58.08ID:Xu5D3g840 ちなみに私が試したのはvisualStudioの2017です
471デフォルトの名無しさん (ワッチョイ 92e0-JNgg)
2019/04/22(月) 20:42:29.96ID:5zGuWDFU0 c#だと遅くて無理みたいな高尚なプログラム触ってないからよくわからん
cppとc#でどれくれい違うん?
cppとc#でどれくれい違うん?
472デフォルトの名無しさん (スップ Sd12-yS2j)
2019/04/22(月) 20:52:55.67ID:doLks5OSd >>471
何するかによるし言語仕様理解せずにコーディングすればC++だろうがC#だろうが遅くはなる
早くしたけりゃどの言語だってコンパイラが吐くコード見ろになるし極論アセンブラしてろになる
シビアな演算速度求められるようなソフトじゃなきゃ気にするような速度は無い
個人的にいろいろ開発してて速度面で困ったことはない
何するかによるし言語仕様理解せずにコーディングすればC++だろうがC#だろうが遅くはなる
早くしたけりゃどの言語だってコンパイラが吐くコード見ろになるし極論アセンブラしてろになる
シビアな演算速度求められるようなソフトじゃなきゃ気にするような速度は無い
個人的にいろいろ開発してて速度面で困ったことはない
473デフォルトの名無しさん (ブーイモ MMa6-hooH)
2019/04/22(月) 21:35:41.32ID:puVU3XKCM 特定のアプリを監視して表示された文字(画像)をテキストにするアプリ作ったけど
c#だとチェックに1秒、c++とGDIのDLLだと0.01秒とかそんな感じだった
c#で作って必要ならc++にコンバートするのでいいと思う
c#だとチェックに1秒、c++とGDIのDLLだと0.01秒とかそんな感じだった
c#で作って必要ならc++にコンバートするのでいいと思う
474デフォルトの名無しさん (ブーイモ MMad-3Z9U)
2019/04/22(月) 21:59:37.22ID:a2wjQuhnM >>468
unsafe使えば
unsafe使えば
475デフォルトの名無しさん (ワッチョイ 1990-Xw8j)
2019/04/23(火) 00:01:21.36ID:5LmBAPnu0 画像処理とかその部分はunsafeとかcだろ。それぐらいは当たり前
476デフォルトの名無しさん (ワッチョイ d963-yS2j)
2019/04/23(火) 00:14:05.59ID:Bc6Ot9Tr0 別にC#でいくらでも早くできるけどそれしないでC++より遅いってそりゃそうだよねとしか
GCの恩恵受けてunsafe使わずセーフティな状態でしょ
突き詰めたC++と突き詰めたC#なら.NETで動く分C#が不利なのは仕方ない
突き詰める必要がない部分で恩恵を受けられるんだから、処理速度以外にメリット感じないなら速い言語やればいい
言語なんて所詮道具なんだから適材適所
GCの恩恵受けてunsafe使わずセーフティな状態でしょ
突き詰めたC++と突き詰めたC#なら.NETで動く分C#が不利なのは仕方ない
突き詰める必要がない部分で恩恵を受けられるんだから、処理速度以外にメリット感じないなら速い言語やればいい
言語なんて所詮道具なんだから適材適所
477デフォルトの名無しさん (ワッチョイ ee0d-X0Gq)
2019/04/23(火) 00:15:59.36ID:lAbUfbw70 sleepが1ms単位指定なのに平気で30msくらいかかったりする
478デフォルトの名無しさん (ワッチョイ 2517-YIQo)
2019/04/23(火) 00:21:34.72ID:Qu51xl5v0 >>477
Windowsの仕様なのでC#と関係なく発生するよ
Windowsの仕様なのでC#と関係なく発生するよ
479デフォルトの名無しさん (スッップ Sdb2-XxWr)
2019/04/23(火) 00:22:35.63ID:1xhRm/Xtd OSの内部クロックのせい
480デフォルトの名無しさん (ブーイモ MMd5-pikq)
2019/04/23(火) 02:07:58.81ID:TPVsn91QM >>473
そりゃあおまえさんのコードが糞なだけや
そりゃあおまえさんのコードが糞なだけや
481デフォルトの名無しさん (アウアウエー Sada-shJk)
2019/04/23(火) 02:09:14.72ID:V6IaHlzqa OSにクロックはないでしょうw
いやスケジューリングとかタイムスライスとかそんなことが言いたいんだとは思うけど
いやスケジューリングとかタイムスライスとかそんなことが言いたいんだとは思うけど
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- テレビ「地震!津波!高いところへ逃げて!」
