ふらっと C#,C♯,C#(初心者用) Part138

■ このスレッドは過去ログ倉庫に格納されています
2018/06/05(火) 19:32:42.28ID:70UTtyrn0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part137
https://mevius.5ch.net/test/read.cgi/tech/1523004019/
■コードを貼る場合は↓を使いましょう。
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
2018/07/17(火) 23:41:42.83ID:ofYg0nnt0
>>674
10万行の間違いだろ。
688デフォルトの名無しさん (ワッチョイ 2a7f-L1xz)
垢版 |
2018/07/17(火) 23:47:31.06ID:WCI1fetR0
>>686
昔からあるぞ。
最近のだと、More Effective C# 6.0/7.0が既に出てて、Effective C# 6.0/7.0ももうすぐ出る予定。
2018/07/17(火) 23:52:58.90ID:cS4zRgZd0
>>672
独習C#新版が終わったらレポートよろしくね
2018/07/18(水) 00:21:32.09ID:WfV71rrt0
dotnet aspnet-codegeneratorってwindowsでしかうごかんの?
2018/07/18(水) 02:04:04.67ID:ohWLsVDp0
>>688
やっぱあるよね
感覚的にはeffectiveに書いてある内容がとりあえず理解できて実践しだしたら中級者なイメージ
上級者っていうとmvpクラスと同等の知識レベルとかになるのかなぁ
mvpもいろいろあって基準としては曖昧かもしれんが
2018/07/18(水) 02:09:13.63ID:ohWLsVDp0
1000行なんて時には1日で書く程度のアプリ10本作ったところで…
だからって10万行のアプリなんて、それほんとに10万行必要だったの?プラグイン1個居れたら数万行不要になるんじゃない?って気もする
そもそも行数で語る時点でおかしい訳だけど
プログラム未経験は別として経験者なら一言語の中級者になるのに3年もかけてたら上級者になる頃にはその言語消えてんじゃね?って思う
2018/07/18(水) 07:35:29.71ID:604NWUGLd
一時的にスリープのように任意のスレッドの処理を停止させて
別スレッドがある処理をしたら停止スレッドが動き始めるような形を作りたいです
waitforsingleobject以外に実現方法ありますか
2018/07/18(水) 07:37:13.37ID:gGGdDmmqd
>>693
なぜそんなことしたいの?
2018/07/18(水) 07:40:12.26ID:604NWUGLd
>>694
Aスレッド、Bスレッドがあって
Aスレッドはたまっているリクエストを非同期で投げ続けています
リクエストは一つずつ送らないといけない制約があるため
その応答が来るまでAスレッドを停止させたいです
応答というのがBスレッドの処理です
2018/07/18(水) 07:51:29.32ID:gGGdDmmqd
>>695
普通にasync/awaitじゃだめなの?
2018/07/18(水) 09:20:45.30ID:W2UhJLr+0
待機するAスレッドがUIスレッドとかいう状態でもなければ
それこそ関数直接コールでも良さそうなもんだけど
698デフォルトの名無しさん (ササクッテロル Spbd-p+0f)
垢版 |
2018/07/18(水) 10:14:35.95ID:IWAo5nUlp
じゃあセマホ使えよ。
2018/07/18(水) 12:17:19.01ID:TKyRL/+ma
A案:リクエストのキューを投げる側ではなく受ける側に持たせる

B案:リクエストを投げるメソッドのデリゲートのキューをリクエストを受ける側に持たせる
2018/07/18(水) 13:53:18.95ID:imuZ+lX20
会社クラスを作りインナークラスで部署クラスを作ったのですが、インナークラスの使い方として間違っていないでしょうか

なんかMS意図と違う使い方をしてる気がしておりまして
2018/07/18(水) 14:21:30.22ID:JHZwBCBgM
間違いです
2018/07/18(水) 14:39:45.10ID:zONoZYnW0
IT業界は部署ごと社外に出向させられるとか日常茶飯事ですからね。
703デフォルトの名無しさん (ワッチョイ 6dbb-Qvid)
垢版 |
2018/07/18(水) 19:00:56.71ID:9N0yBnKk0
listviewを使って画像をドラッグした位置に挿入できるようなものを作りましたが、サムネイル表示(ViewプロパティをView.LargeIconに設定)だと移動後に一番後ろに来てしまいます
、どうすれば自由に画像を入れ替えれるのでしょうか?
704デフォルトの名無しさん (ワッチョイ 1181-L1xz)
垢版 |
2018/07/18(水) 19:50:12.60ID:yFSY1wbO0
>>692
>1000行なんて時には1日で書く程度のアプリ10本作ったところで…

これも内容によるけどな
10本作る間に誰に見られても恥ずかしくないコードが書けるようになれば…
2018/07/18(水) 21:41:28.47ID:ojmeEx4e0
>>704
内容にもよるんだろうけれど、きちんと動くプログラムを10本完成させたっていうのであれば、それなりに評価してよいと思う。
2018/07/18(水) 21:49:23.42ID:GTM6kR3M0
仕事の山越えたからと社内文章読んでたら我が社のコーディング規約にvarとLINQ禁止とデカデカと書いてあってて笑ったwww
2018/07/18(水) 21:53:50.99ID:iepCQJFn0
就職ガチャ失敗おめでとうございます
2018/07/18(水) 22:21:17.43ID:ptS24Bkdd
>>706
LINQ禁止ってラムダ式使ったらだめってこと?
2018/07/18(水) 22:30:15.87ID:MKYFu03e0
varだめってリテラシーならラムダもダメだろうね
2018/07/18(水) 22:41:34.30ID:62X+9Moaa
短いコードのアプリでもちゃんと一般人の使用に耐えうるようになってるならいいだろう
機能的には十分でも無秩序にボタンが並んでるアプリは見ててつらい
711デフォルトの名無しさん (アウアウカー Sa55-eTBu)
垢版 |
2018/07/18(水) 23:09:23.95ID:/cNHsX3ta
コントロールそこそこおいたまともなアプリなら1000行じゃおさまらんやろ
2018/07/18(水) 23:29:19.34ID:p8keSf810
>>706
C#の公式コーディング規約に真っ向から対立www
2018/07/18(水) 23:39:58.45ID:rt2OOdjJ0
ラムダ式禁止とかC#使う価値半減だな
2018/07/18(水) 23:43:15.56ID:dMzTHkZAM
λ縛りはBダッシュ縛りマリオぐらいキツイ
2018/07/18(水) 23:46:14.58ID:L7ofGWBt0
716デフォルトの名無しさん (ワッチョイ ffe8-H0hI)
垢版 |
2018/07/19(木) 00:18:15.44ID:mgU85F4C0
varってスコープが決まってたりよく使うもんだと思ってるんだけど
違うん?

あとコンパイル時に推論されるから実行速度には影響ないって考えていいの?
2018/07/19(木) 00:29:07.38ID:iwebbGhU0
>>716
明示的に型を示しても実行速度は変わりません
718デフォルトの名無しさん (ワッチョイ ffe8-H0hI)
垢版 |
2018/07/19(木) 00:29:37.74ID:mgU85F4C0
>>717
ありがとうございます
2018/07/19(木) 00:34:23.22ID:4jMcHp760
var myTable = new Dictionary<string, string>();
myTable.Add("Hokkaido", "Sapporo");
myTable.Add("Iwate", "Morioka");
myTable.Add("Miyagi", "Sendai");

//*1
var b = myTable.ContainsKey("Iwate");

if (b == true)
{
      //*2
var s = myTable["Iwate"];
MessageBox.Show(s);
}

Dictionaryから特定の要素を探して、あれば表示するんですが
この*1 *2 をLINQを使って1行にしたいんですが、どうすればいいですか?
2018/07/19(木) 00:38:57.36ID:5TJBBc7u0
継承について
スーパークラスAに始まり
class B : A
class C : B
class D : C
となった場合、
Dクラス内でAやBのクラスのフィールドやメソッドをを使いたくなった場合には
それぞれをインスタンス化をすれば使えると思いますが、
継承されていない場合はどうすれば良いのですか?
例えば、
スーパークラスX
class Y : X
class Z : Y
とい場合、class Aのメソッドやフィールドを使いたくなったときは、
どうやってクラスAを持ってくるのでしょうか?
継承をしなくても、そのクラスのメソッドやフィールドを持ってくる方法はありますか?
2018/07/19(木) 00:46:06.47ID:9fGOJ2HHa
コンポジション

ZのフィールドやプロパティにAをもたせるだけ
2018/07/19(木) 00:56:15.63ID:OslD0F820
>>719
LINQ は集合に対して使うものなので、その例だと必要ない

if (myTable.TryGetValue("Iwate", out var s))
{
 MessageBox.Show(s);
}

対象が複数あるならこう

var list = new[] { "Hokkaido", "Iwate", "Tokyo" };
var q = list
 .Where(x=> myTable.ContainsKey(x))
 .Select(x=> myTable[x]);
foreach (var s2 in q)
{
 MessageBox.Show(s2);
}
2018/07/19(木) 01:05:12.94ID:EPnya5cJa
>>719
LINQ全く関係ないけど比較的新しいC#ならこう書ける
if (myTable.TryGetValue("Iwate", out var s)) MessageBox.Show(s);
どうしても単一ステートメントにしたいなら
myTable.TryGetValue("Iwate", out var s) ? MessageBox.Show(s) : DialogResult.None; とか
(myTable.TryGetValue("Iwate", out var s) ? (Action<string>)(x => MessageBox.Show(x)) : (Action<string>)(_ => {}))();
とか書けなくはないけど俺ならこんなの書いてきやがったらコードレビューで突き返す
2018/07/19(木) 07:22:53.40ID:Y653MTcJd
>>696
awaitでは上手く実現できなさそうな構造でした

https://msdn.microsoft.com/ja-jp/library/system.threading.monitor(v=vs.110).aspx
monitorクラスを使って実現できそうだなとなりました
ただこれのシグナルを投げるpulseとpulseallの違いがよくわかりません
pulseは変数で渡したオブジェクトのスレッドを、pulseallは渡すオブジェクトとか関係なくwaitで止まってるすべてのスレッドを動かす?
2018/07/19(木) 07:52:34.10ID:pmdFJ8GPd
>>724
>awaitでは上手く実現できなさそうな構造
なぜ?
2018/07/19(木) 07:53:35.73ID:EPnya5cJa
>>724
つまりProducer-Consumerだろ?
まさにBlockingCollectionのユースケース
2018/07/19(木) 10:16:19.48ID:cAPUq0O30
Aそのものは非同期(バックグラウンド)で動く必要があるとして
そもそもBが非同期で動く必要性がわからん
かならず応答きてから次をよぶんだろ?
2018/07/19(木) 11:39:51.48ID:wWZN809Va
むしろ一番の疑問は、
>リクエストは一つずつ送らないといけない制約がある

のであれば、キューを持つべきなのはリクエストを送る側ではなく受ける側なんじゃないか、
なぜリクエストを送る側に受ける側の都合に合わせる負担をさせるのか、
ってことだと思うけど、まあ話が曖昧過ぎてよくわからんね。
2018/07/19(木) 12:02:04.85ID:4jMcHp760
>>722
自分のコードだと野暮ったくて古い感じがしたんですが
out var なるものを使ってすっきりさせるんですね

>>723
最近、ラムダ式やLINQを始めたんで↓みたいにメソッドチェーンで繋げたかったんですが
これだとやりすぎなんですねw

>> myTable.TryGetValue("Iwate", out var s) ? MessageBox.Show(s) : DialogResult.None; とか
>> (myTable.TryGetValue("Iwate", out var s) ? (Action<string>)(x => MessageBox.Show(x)) : (Action<string>)(_ => {}))();
>> とか書けなくはないけど俺ならこんなの書いてきやがったらコードレビューで突き返す


ありがとうございました
2018/07/19(木) 12:23:58.43ID:apArmWopd
見やすくしたり行数減らす為の機能なのに一文に無理やり詰めたら見づらいだろうしな
LINQ使わなくても
;で終わらせた文を一列にずっと書き続けてたらなんだこいつってなるだろうし
2018/07/19(木) 12:45:19.73ID:7c8TqsUTM
MQ使えよ
2018/07/19(木) 13:14:15.48ID:kD3lyTPJr
varのメリットってなに?
2018/07/19(木) 14:01:22.48ID:goaSBPuMd
>>732
定期的にこのスレを荒らすメリットがある。
734デフォルトの名無しさん (ワッチョイ 7783-4GkJ)
垢版 |
2018/07/19(木) 14:35:28.55ID:3tSlXwR10
10年で1スレも消費できないムラダ厨がまた初心者スレで暴れてるのか。
735デフォルトの名無しさん (ササクッテロル Sp4b-zvcE)
垢版 |
2018/07/19(木) 15:40:49.42ID:afTcWGfVp
>>728
送る側で待たないと仕事を溜め込んだ受け側が最悪死ぬか無視する様になるぞ。
2018/07/19(木) 16:09:05.04ID:wWZN809Va
>>735
意味わかんないよ

キューが満杯ならエンキューできないだけ。
そして、キューが満杯になるような事態が起こるかどうかは、キューを送る側受ける側
どちらが持つかという設計の問題とは何も関係がない。

送り側が持てばそんな事態は起こらない、などとはまったく言えない
2018/07/19(木) 16:13:58.11ID:GVBKISLp0
共有メモリにFIFO作りたいのでサンプルコードください
2018/07/19(木) 19:27:54.48ID:FFg3mKaqa
>>737
基本的にスレチだな
2018/07/19(木) 20:33:54.32ID:AM4tPqCx0
>>737
マルチ乙
2018/07/19(木) 20:34:49.77ID:m5MPu7YPM
バックグラウンドジョブをメモリに置いて管理するとクラッシュした時につらいのでやめてください
741デフォルトの名無しさん (ササクッテロル Sp4b-zvcE)
垢版 |
2018/07/19(木) 23:06:52.57ID:afTcWGfVp
>>736
少なくとも送る側が待てばたまらないし、待たすからには大元まで遡って待たせることが出来る。
受け側で貯めちゃうと、そんなコントロールすらできない。
2018/07/19(木) 23:10:07.57ID:3HXgvZll0
>>737
MemoryMappedFileクラスで共有メモリを作って、そこにリングバッファを作れば良い。
サンプルコード? と言う名の丸投げは知らんw
2018/07/19(木) 23:16:09.86ID:GVBKISLp0
>>742
ありがとうございます
2018/07/19(木) 23:24:45.38ID:OO5CyzUia
>>741
何を言ってんの。
ちゃんと自分の頭で考えて言ってる?

キューの容量が100だとする。
リクエストが100まで溜まってしまうかどうかは、キューをどちらが持つかと関係ないでしょ。

スループットはリクエストの処理能力で決まるんであって、キューをどっちが持つかで決まるんじゃない。
当たり前でしょ。

送る側が待てばたまらない?
それは受ける側がリクエスト拒否したらたまらないと言ってるのと同じ

君の世界じゃ、バケツリレーの余分なバケツの置き場所を送り元におくか送り先に置くかで
バケツの輸送能力(単位時間あたりの送れる水の量)が変わるの?

変わるわけがないでしょ
頼むよマジで
2018/07/20(金) 00:04:31.35ID:K42rKqTp0
>>721
ありがとうございます

すみません、コンポジションというのはどういう手法なのでしょうか?
調べてはみたのですが解説しているサイトが見つからなくて・・・
2018/07/20(金) 00:15:51.43ID:v/t2rOLx0
>>745
クラスのインスタンスをメンバ変数などに設定して持つ
2018/07/20(金) 00:16:43.45ID:Cn0RK5hEM
配置計画
GOFはそちらを優先して説明しているが
2018/07/20(金) 01:07:34.53ID:AsTO3swr0
持つと待つ
混ざりすぎじゃねぇの?
待つって言いたいんだよね?
2018/07/20(金) 06:49:01.24ID:rjUp7fMrM
きたです
https://i.imgur.com/F20EZn1.jpg
2018/07/20(金) 09:57:40.63ID:KW0DEJnu0
>>748
>>744の文中の持つは持つで間違ってないと思う
751デフォルトの名無しさん (ササクッテロル Sp4b-zvcE)
垢版 |
2018/07/20(金) 10:43:27.30ID:aSukBuZjp
>>744
だから、貯め無い様にするには、送る側、更にそこに送る側、更に大元の送る行為を辞めされはいいって話。
わかる?

通信のフローコントロールの話と同じなんだよ?
2018/07/20(金) 10:47:52.01ID:j2kgPlBya
>>751
まだ言ってるのか。

君の世界では
>送る側、更にそこに送る側、更に大元の送る行為を辞めされはいいって話

これが可能かどうかはリクエストのキューをどちらが持つかに依存するのか。
キューをリクエストの受け側が持ったらそれは出来ないのか。
意味が分からないよ

何が
>通信のフローコントロールの話と同じなんだよ?
だw
馬鹿過ぎて笑える
2018/07/20(金) 10:50:07.22ID:GHEf7JCUM
よそでやってくんねーかなクソカス
754デフォルトの名無しさん (ササクッテロル Sp4b-zvcE)
垢版 |
2018/07/20(金) 10:50:53.38ID:aSukBuZjp
おまえ、目悪過ぎて呆れるわ。

持つなんて一言も言って無いだろw
待つだw マツ。

キューをどっちが持ってるかなんて話はしてない。
2018/07/20(金) 11:06:39.88ID:KI/QuNIvM
アスペルガーの人はひとつのことしか同時にわからないから
二つ話題があることに気がつかない

その話題は持つであってるよ
756デフォルトの名無しさん (ササクッテロル Sp4b-zvcE)
垢版 |
2018/07/20(金) 11:16:02.27ID:aSukBuZjp
>>755
まあ普通は受け取る側に郵便受けが無いと受け取る人はいちいち局留めの郵便を受け取りに行かなきゃならないんだけど、まあ、それはどちらでも機能するからあんまり争点にはならないけどね。
2018/07/20(金) 13:07:56.71ID:aSN8UD58d
バケツリレーの喩えでもスループットは変わっちゃうんだよな。
受け側に送信側が送信する総量より大きいバッファを持てば、スループットは水の入ったバケツを運ぶ時間に依存するだけで済む。
キューがそれより遅ければバケツを引き渡すために時間が余計にかかるわけだから、スループットは落ちる。
送信側にキューを持ったところで、送信側は送信処理に対して同期的に処理しないだけで済むだけで、そのキューからの送出がどんどん遅れるだろう。受け取ってくれないなら。
2018/07/20(金) 13:54:59.01ID:gB9GbXMP0
>>693,695「スレッドを協調して動かしたいです、制約あるんで」
凡人の回答「○○使えよ」
天才の回答「制約が悪い」
2018/07/20(金) 21:28:53.81ID:OAXfUTo30
c=(a*a+b*b)
c=System.Math.Sprt(c)
これでcの平方根を出そうとしたのですがSystem.MathにSprtの定義がありませんと出ます
sharedevelopを使っています
2018/07/20(金) 21:32:35.58ID:XkM+nwLwM
SQRT
2018/07/20(金) 21:35:00.80ID:6RzmSKAyM
エディタの不具合だろ
SharpDevelopなどという化石は今すぐアンインストールしてVSかVSCodeを使え
2018/07/20(金) 21:44:14.53ID:XkM+nwLwM
平方根の綴りが違う
2018/07/20(金) 22:17:34.54ID:7jIkQpVM0
square rootだからねぇ
2018/07/21(土) 00:28:32.93ID:WdWG9X6t0
ありがとうございます 解決しました
2018/07/21(土) 06:52:38.43ID:HGZKU0EK0
スパート!
2018/07/21(土) 13:53:42.54ID:aw31/LTY0
>>754
もともと
>キューを持つべきなのはリクエストを送る側ではなく受ける側なんじゃないか、
にたいして
>送る側で待たないと仕事を溜め込んだ受け側が最悪死ぬか無視する様になるぞ。
ってレスしてるのが発端なんだが

どうでもいい良いしよそでやって欲しいけど
767デフォルトの名無しさん (ワッチョイ 97b5-zvcE)
垢版 |
2018/07/21(土) 14:14:10.21ID:IqGIA9LU0
話題が一変してんのにわざわざ掘り返すなよw
言ってる事とやってる事が矛盾してんぞw
2018/07/21(土) 15:42:07.60ID:8fBGWCJL0
レスバトルって奴だろ
最後に言及した方が勝ちなんだって
これ見るといつも思うが、こういう馬鹿には自分自身を見る自意識がないのかね
769デフォルトの名無しさん (ワッチョイ ffe8-U/lW)
垢版 |
2018/07/21(土) 20:00:10.16ID:rsQP0F780
たすけて!
Parallel.ForEachの中でデータグリッドの内容を更新してるんだけど
途中で爆発します
データグリッド全体に✕って出て非表示になる
データグリッドの更新処理はlockで囲ってても競合は起きちゃうものですか?
2018/07/21(土) 20:05:25.49ID:CBiNHREt0
まず原因を切り分けろ
Parallel.ForEachを外しても爆発するか確認するんだ
771デフォルトの名無しさん (ワッチョイ ffe8-U/lW)
垢版 |
2018/07/21(土) 20:07:27.16ID:rsQP0F780
>>770
パラレルの外出すと機能するけど
そうすると全処理終わってから一回しか更新されない…😌
2018/07/21(土) 20:08:57.28ID:gktKld7A0
>>771
UIはUIスレッドからしか操作出来ない
Parallel.ForEachの処理は別スレッドで実行される
2018/07/21(土) 20:10:43.13ID:BEEMYUE30
>>771
Action<TLocal> localFinally の引数をとるオーバーロードを使ってみたらどうでしょう?
2018/07/21(土) 20:10:44.76ID:H6KFndt4M
>>768
君のレスを見るといつも思うが、こういう特徴のある口調のレスを繰り返す人には自分自身を見る自意識がないのかね
2018/07/21(土) 20:10:59.84ID:nH897ECr0
invokeするか、ContextにPostするしか無いんじゃないかな
2018/07/21(土) 20:22:09.68ID:3bWsh9tI0
>>774
>>774
2018/07/21(土) 20:22:10.55ID://qCwfF7a
爆発w
778デフォルトの名無しさん (ワッチョイ ffe8-U/lW)
垢版 |
2018/07/21(土) 20:24:00.77ID:rsQP0F780
>>772
>>773
>>775
Invokeでググりました
まさにこの疑問を解決するための機能でした
有難う御座います
2018/07/21(土) 20:35:04.73ID:BEEMYUE30
私は >>773 ですが Invoke について自分があまり良く分かってない気がしてきたので
詳しい方がいらっしゃったら教えてください

UIスレッドで Parallel.ForEach を呼ぶとUIスレッドをつかんだまま並列処理が実行されて、
その並列処理のスレッドで Invoke を使うとデッドロックしてしまう気がするのですが
実際はそういうことはないのでしょうか?
2018/07/21(土) 20:36:04.76ID:aw31/LTY0
マルチスレッドにしてInvokeしまくると結局パフォーマンスがガタ落ちしたりするがな
2018/07/21(土) 21:15:58.91ID:BEEMYUE30
>>779 です
WPF で下のようなコードを実行してみたらやっぱりデッドロックしてしまいました
Invoke はそれなりに慎重に使わないといけないみたいです

void Button_Click(object sender, RoutedEventArgs e)
{
  MessageBox.Show("このメッセージは必ず表示される");
  Parallel.ForEach(Enumerable.Repeat(0, 2), i => Dispatcher.Invoke(() => { }));
  MessageBox.Show("デッドロックするとこのメッセージは表示されない");
}

ちなみに Enumerable.Repeat(0, 2) の部分を変えると以下のような挙動でした

Enumerable.Repeat(0, 0) に変える → デッドロックしない
Enumerable.Repeat(0, 1) に変える → デッドロックする
new int[] { } に変える → デッドロックしない
new int[] { 0 } に変える → デッドロックしない
new int[] { 0, 0 } に変える → デッドロックする
2018/07/21(土) 21:16:52.59ID:1oayVCQs0
>>778
いいってことよ(´・ω・`)b
2018/07/21(土) 21:18:17.40ID:nH897ECr0
>>779
並列処理はUIスレッドではないスレッドで行われるよ。
いや、UIスレッドで行われるとは限らない、と言う言い方の方が正しいかな。
UIスレッドを掴んだままの意味がわからんが、挙動が謎なら、ブレークポイントつけて実行して、どのスレッドが何をしてるかを把握してはいかがだろうか。
今どのスレッドを使ってるかは表示されてるから。
2018/07/21(土) 21:20:54.98ID:nH897ECr0
WPFかあ
785デフォルトの名無しさん (ワッチョイ 7feb-yhN8)
垢版 |
2018/07/21(土) 21:25:21.58ID:VW1YO4fA0
Windows版VSCodeで、monoを構文解析用のコンパイラとして指定することってできないのかな?

Unityの.Net4.0用プロジェクトで、数ヶ月前までは、.Net3.5用のSystem.Data.DLLを読み込んでくれたのにさあ
VisualStudioを更新したら構文解析用のコンパイラが変わったのか、古い.net3.5用のDLLを読み込んでくれなくて赤波線だらけになっちゃったぜ
4.0用のDLLもあるわけだけど、それを入れるとUnityのmonoの方でなぜかエラーを起こすし・・・どうしたら良いものか・・・・
2018/07/21(土) 21:33:11.65ID:BEEMYUE30
>>783-784
レスありがとうございます

> いや、UIスレッドで行われるとは限らない、と言う言い方の方が正しいかな。
>>781 で new int[] { 0 } だとデッドロックしないあたり、まさにそんな感じですね

> WPFかあ
>>769 でデータグリッドと書かれていたので、
今の Windows フォームなら DataGrid ではなく DataGridView かなと思って
WPF の方で試してしまいました(汗
Windows フォームだと挙動が変わるならそれも知っておきたいので
今からそっちでも試してみます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況