[過去ログ] C#, C♯, C#相談室 Part93©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(2): 転載ダメ©2ch.net (ワッチョイ 1e06-m8Mb) [sageteoff] 2017/04/22(土)08:52 ID:iVvswOrb0(1/2) AAS
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
外部リンク:www.visualstudio.com
■コードを貼る場合はこちら
外部リンク:ideone.com
■前スレ
C#, C♯, C#相談室 Part92
2chスレ:tech
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2(1): (ワッチョイ de35-HDOw) 2017/04/22(土)10:57 ID:g8ZT1khs0(1) AAS
■過去スレ
C#, C♯, C#相談室 Part89
2chスレ:tech
C#, C♯, C#相談室 Part90
2chスレ:tech
C#, C♯, C#相談室 Part91
2chスレ:tech
C#, C♯, C#相談室 Part91 (実質Part92)
2chスレ:tech
C#, C♯, C#相談室 Part92 (実質Part93)
2chスレ:tech
>>1
ここは、実質Part94
3: (ワッチョイ 1e06-m8Mb) 2017/04/22(土)13:39 ID:iVvswOrb0(2/2) AAS
■関連スレ
初心者の質問向けはこちら
ふらっと C#,C♯,C#(初心者用) Part127
2chスレ:tech
>>2
補足thx。見逃していた
4: (ワッチョイ 7ff7-/JtG) 2017/04/22(土)14:55 ID:c4VI05+R0(1/4) AAS
おつかれ
キチガイの人(山口人生)は、複数回線もっていそうだからどこまで効果するかは分からんけれど
何もしないよりマシだね、今後もワッチョイ有りで行こう。
死ねばいいのに・・・・
5(1): (アウアウイー Sa63-wX6N) 2017/04/22(土)15:23 ID:FEVU7Q4Da(1) AAS
誰だよ山口人生ってww
6: (エムゾネ FFaa-TkTn) 2017/04/22(土)15:39 ID:S+KK7a41F(1) AAS
正しいスレ番と設定で立てました
C#, C♯, C#相談室 Part94
2chスレ:tech
7: (ワッチョイ 7ff7-/JtG) 2017/04/22(土)16:06 ID:c4VI05+R0(2/4) AAS
>>5
ググッてみてば分かるw
東大出でイリノイ大学で不完全性定理で有名なゲーデルの弟子として著名な
竹内外史先生の弟子になってPh.Dを取るも、神奈川大学で万年講師、研究室の壁を蹴って騒音出していたらクビになってしまったヤツwww
経歴だけ見るとスーパーエリートwwww
学歴荒らしがあるところに山口人生あり、酷い学歴厨の60台後半じぃさん
実家はお金持ち、もう親は鬼籍かな?ビル持っていて資産が一億切っているとか、絶対ヤバそうw
P=NPを主張しているが誰にも相手にされず、学会では芸人扱いw
8: (アウアウイー Sa63-wX6N) 2017/04/22(土)17:40 ID:L9cy9Aq3a(1) AAS
統失くんいらっしゃい、ってかw
9: (ワッチョイ 7ff7-/JtG) 2017/04/22(土)17:57 ID:c4VI05+R0(3/4) AAS
敬意が足らないですね、糖質超教授と読んであげましょうwww
いらっしゃらなくていいです、迷惑なので死んでください
10: (ワッチョイ bb4c-VP69) 2017/04/22(土)19:18 ID:7MQLYtSw0(1/2) AAS
本当のその山口ってのなのか?
11: (ワッチョイ 7ff7-/JtG) 2017/04/22(土)19:41 ID:c4VI05+R0(4/4) AAS
張り付き方が異常、現役じゃ不可能
発言が山口人生と似ているし話が高齢者臭い、中年ですらない
Delphiを使っていて最近C#に移ってきている
ここまでのマジキチには普通日常で出会うことは無い、希少種
そんなヤツがこの日本に何人もいてたまるかwwww
12: (ワッチョイ bb4c-VP69) 2017/04/22(土)20:05 ID:7MQLYtSw0(2/2) AAS
このスレ、自分以外は全部同じ人が書き込んでたりしてw
ちょっとしたホラーだな
13: (ドコグロ MM33-MUXz) 2017/04/22(土)20:49 ID:IUEn1/EeM(1) AAS
なんかワッチョイ付いてると気に入らないみたいよ
俺は付いてるほうが好きだからこっちのスレのがいいな
14: (ベーイモ MM7f-4iqD) 2017/05/03(水)17:15 ID:crwmH6BQM(1) AAS
こっち使おうぜ
15(1): (ワッチョイ 93f7-6g+b) 2017/05/05(金)16:32 ID:bVbNjYk40(1/3) AAS
今日発見した衝撃の事実
なぜWindowsUpdateの時ファイルがぶっ壊れるのかというのがずっと謎だった
Application.ThreadExit イベントで書き出しスレッドの終了処理していたのだが
手動のシャットダウンだと問題なく呼ばれるのに、リブートするとThreadExitが呼ばれない
それどころか、フォアグラウンドで作成していたスレッドが強制終了させられている上
System.Threading.ThreadAbortExceptionmもSystem.Threading.ThreadInterruptedExceptionも送出されないまま
突然中断で終了しやがってた・・・
ひでぇ終了の仕方だ・・・
なんでリブートに限りこんなシーケンスで強制終了しやがるんだ、この糞が・・・
16(1): (ワッチョイ 761f-ExUK) 2017/05/05(金)16:49 ID:tHPUBlll0(1) AAS
セキュリティ的にアプデは大事だからね
多少強引な手段で終了してもいいよね仕方ないね
17: (ワッチョイ e2d4-Ogwz) 2017/05/05(金)17:01 ID:3XrDrf840(1) AAS
シャットダウンと再起動で違うのか
18(1): (ワッチョイ 124f-hLQG) 2017/05/05(金)17:10 ID:pBlqXMv00(1/2) AAS
もっと詳しく知りたい。
SessionEndingイベントとかで捕まれないんか?
それ
19: (ワッチョイ 93f7-6g+b) 2017/05/05(金)17:16 ID:bVbNjYk40(2/3) AAS
>>16
セキュリティは最終的には自分のファイルが壊れないことを目的にやるわけだが
そのセキュリティ対策が破壊してくれるのであれば、本末転倒なのでそんな対策は不必要って思うわけだよ。
20(1): (ワッチョイ 93f7-6g+b) 2017/05/05(金)17:17 ID:bVbNjYk40(3/3) AAS
>>18
SessionEndingイベントが来たときはもう殺された後だねw
ここでは対策出来ない。
21: (ワッチョイ 124f-hLQG) 2017/05/05(金)18:09 ID:pBlqXMv00(2/2) AAS
>>20
おおう、そうなんか。
22(1): (アウアウイー Sa37-wexB) 2017/05/05(金)18:13 ID:A3oUashQa(1/3) AAS
>>15
Windows Updateだろうが何だろうがリブート開始時に
ユーザーに確認なくプロセスの強制終了なんてそもそもされないと思うよw
何か勘違いしてない?
23(1): (アウアウイー Sa37-wexB) 2017/05/05(金)18:24 ID:A3oUashQa(2/3) AAS
ちょっと調べた感じ
外部リンク:news.mynavi.jp
にあるような感じでレジストリいじっちゃったんだろうねw
24: (ワッチョイ 323c-10U+) 2017/05/05(金)18:43 ID:PzvORh1V0(1/2) AAS
>>22
EWX_FORCEとかEWX_FORCEIFHUNGを指定してるんでしょ
外部リンク[aspx]:msdn.microsoft.com
セキュリティアップデートは確実にリブートする必要あるから多少の犠牲はやむを得ない
って思ってるんじゃね?
25: (ワッチョイ 72ac-W+y+) 2017/05/05(金)19:11 ID:FiATWWo80(1) AAS
客側でこれを指定されたらたまらないなー
26(1): (ワッチョイ df6c-hLQG) 2017/05/05(金)19:58 ID:ueXs9gXt0(1/2) AAS
ExitWindowExの英文説明では、DWORD dwReservedのとこがdwReasonになってんね。
このへんかな
27(1): あ (スフッ Sd52-gZQE) 2017/05/05(金)20:10 ID:05XvGSted(1/2) AAS
プロセスの終了確認はあるだろうか、その結果タイムアウトした時のスレッドの落とし方はものすごい強引だった気がする。
昔shutdown -s -t 01で落として確認した事ある。
28(1): (ワッチョイ 7606-7zcB) 2017/05/05(金)20:14 ID:3cKL/0El0(1/2) AAS
OSの仕様なのか.NET独特の挙動なのか>>23みたいな話なのかはっきりしないな
.NET独特の挙動だったら業務でアプリ作っている人は死活問題じゃね
29: (ワッチョイ 323c-10U+) 2017/05/05(金)20:27 ID:PzvORh1V0(2/2) AAS
>>26
日本語版のドキュメントが更新されてないだけみたい
WindowsXPからdwReasonになってる
30(3): (アウアウイー Sa37-wexB) 2017/05/05(金)20:30 ID:A3oUashQa(3/3) AAS
いやいやデフォではプロセス強制終了なんてないよ絶対w
Winduws Updateはデフォでは自動になってるんだから、Windows Updateが走るたびに
そんな無茶苦茶やってたら世界中で大騒ぎになってるってw
XPの時代はそんな経験したような記憶もあるけど
少なくともVista以降はないと思うよ
31: (ワッチョイ 7606-7zcB) 2017/05/05(金)20:34 ID:3cKL/0El0(2/2) AAS
俺は趣味でやっているだけだしアップデートも任意のタイミングでしかやらないからどうでもいいが
VSの有料ライセンス買っている人がいて心配だったら直にMSに聞いた方がいいな
32: あ (スフッ Sd52-gZQE) 2017/05/05(金)20:48 ID:05XvGSted(2/2) AAS
>>28
業務アプリが走るような環境は、社内でKB単位で配布して、ログイン前に当たるようにしてると思う。
>>30
本人はプロセスじゃなくてスレッドを問題視してるのでは?
33: (ワッチョイ df6c-hLQG) 2017/05/05(金)22:27 ID:ueXs9gXt0(2/2) AAS
>>30
言いたい事はわかるw
まーもちつけ
34: (ワッチョイ 93f7-6g+b) 2017/05/06(土)07:24 ID:KTPtsEWO0(1) AAS
>>30
10以前はWindowsUpdateをするタイミングをこちらの問題の無いタイミングで出来たから
そもそも問題自体が存在しなかったという事実。
35: (ワッチョイ 27d4-YAN7) 2017/05/06(土)07:54 ID:rojhZA3i0(1) AAS
適度にトラブル起こしてあげないと窓際族の情シスの仕事がなくなっちゃうからね
36(1): (ワッチョイ 124f-hLQG) 2017/05/06(土)08:25 ID:2V5tVO5D0(1) AAS
>>27
これは良いこと聞いた。
うちも似たような仕組み作ってるグループあるから、ExitWindowsExも利用して調査してみるよう伝えてみるわ
37: あ (スフッ Sd52-gZQE) 2017/05/06(土)08:57 ID:BE072L/9d(1) AAS
>>36
UIスレッドでメッセージボックス出しとくと、プロセスを落とす正規ルートからはずれて再現できるとか、なんか色々こねくり回したよ。
今だと仮想マシンあるから、マシンが上がってくるの待つ辛さ無いかもね。
38: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)06:03 ID:OZ9w4Yf70(1/14) AAS
ロック処理についてちょっと相談です
●二つ以上のオブジェクトを同時にロックしたい
片側づつ順を追ってロックしていくのはダメ、デッドロックするので。
ロック出来ない状態である限り、ロックは限りなくしないようにしたい。
ロックに失敗までのタイムアウト処理もしたい。
●例えばこれだと、デッドロックを引き起こすので良くない
lock(obj1) lock(obj2) 処理;
●そこで、言語に以下のような構文があれば理想的なのだが
ないので、それらしいヘルパを作りたい、できれば効率的な物。
lock(obj1,obj2, ... ,timeout=1000) {
ロック成功の場合の処理
}
timeout {
タイムアウトした場合の処理
}
39(2): (ワッチョイ fbf7-Ksx5) 2017/05/25(木)06:03 ID:OZ9w4Yf70(2/14) AAS
●とりあえず簡単に考えた、しかし無駄が多そうに見える、もっと良いものが欲しい。
DateTime begin = DateTime.Now;
再試行:
bool l1 = Monitor.TryEnter(obj1, 0);
bool l2 = Monitor.TryEnter(obj2, 0);
if (l1 && l2) {
goto ロック成功;
} else {
if(l1) Monitor.Exit(obj1); // チェックと共にロックしてしまうので、このコードも残念賞
if(l2) Monitor.Exit(obj2); // 同上
if ((DateTime.Now - begin).TotalMilliseconds > 1000) {
goto タイムアウト;
} else {
System.Threading.Thread.Sleep(10); // この待ち方も酷い
goto 再試行;
}
}
タイムアウト:
{
タイムアウト処理
}
ロック成功:
40(1): (ワッチョイ 2b75-Muxa) 2017/05/25(木)07:25 ID:zdaQwC0X0(1) AAS
ていうか普通にロック専用のオブジェクト作ってそれをロックすりゃいいんじゃねーの
41: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)07:32 ID:OZ9w4Yf70(3/14) AAS
>>40
それだとロック粒度が大きくなりすぎて逆にデッドロックの可能性を拡大してしまいますね。
42(1): (ワッチョイ 9f7d-yauO) 2017/05/25(木)07:34 ID:ZdIAUNK00(1) AAS
セマフォ使ったらどう?
資源数もタイムアウトもあるし
43: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)07:36 ID:OZ9w4Yf70(4/14) AAS
>>42
セマフォは重いんですよねぇ
それをやるくらいなら>>39の例の方が効率的ですね。
44: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)07:50 ID:OZ9w4Yf70(5/14) AAS
>外部リンク[html]:article.higlabo.com
lock(Monitor.Enter/Monitor.Exit) 同じプロセス 20ns
Mutex 違うプロセスも可能 1000ns
SemaphoreSlim 同じプロセス 200ns
Semaphore 違うプロセスも可能 1000ns
ReaderWriterLockSlim 同じプロセス 40ns
ReaderWriterLock 同じプロセス 100ns
Semaphoreは高機能すぎて、あまり軽々しくは使えない。
そのわりにはlockと違ってスレッドチェックがないので自家中毒を起こしたりするので、別途そのための対処が必要になったりする。
lock 20nsはやはり捨てがたいものです。
45(1): (ワッチョイ 4bcd-TmZs) 2017/05/25(木)08:14 ID:CNpknsWj0(1/4) AAS
見も蓋もないが、設計が間違ってる気がする。
46(1): (ワッチョイ fbf7-Ksx5) 2017/05/25(木)08:20 ID:OZ9w4Yf70(6/14) AAS
>>45
そんな事は無いと思うんだけどな、セマフォに標準で実装されているように
これはマルチスレッドデザインパターンとしては基本になるかと。
というか教科書にある典型ですし。
ところが、Monitorにはなかったので、おや何故ない?となっている所。
せっかく高性能なのに有効活用できないのは勿体ないと。
47(1): (スプッッ Sd0f-UmYi) 2017/05/25(木)08:30 ID:a8axhl9cd(1/3) AAS
>>46
そもそもなぜロックが必要なの?
48(1): (ワッチョイ fbf7-Ksx5) 2017/05/25(木)08:34 ID:OZ9w4Yf70(7/14) AAS
>>47
分からないならレスしないでもらえますか?
流されては叶いません。
49(1): (ワッチョイ 4bcd-yumd) 2017/05/25(木)08:52 ID:CNpknsWj0(2/4) AAS
>>39
みたいなことをするぐらいならSpinLockを使った自前実装で処理したほうが良いかもしれない。
もしくは
>>lock(obj1) lock(obj2) 処理;
これでもデッドロックしないように、Lockする順番を厳格にしてコーディングするとか
というか、言葉遣いに気を付けたほうが良いと思うよ。
50: (ワッチョイ 2bd4-WXs4) 2017/05/25(木)08:54 ID:foQMlEN20(1/2) AAS
そんなにパフォーマンスが大事ならオプティミスティックロックも検討したら?
どうせ滅多に競合なんかしないでしょ
51(1): (スプッッ Sd0f-UmYi) 2017/05/25(木)09:01 ID:a8axhl9cd(2/3) AAS
>>48
そもそもロックが必要という判断に至った理由が明らかでない
ロックがベストな選択肢である保証はどこにもない
52(1): (ワッチョイ fbf7-Ksx5) 2017/05/25(木)09:04 ID:OZ9w4Yf70(8/14) AAS
>>49
ここにいる知らなくてもレスしないと死ぬ病気にかかっている奴はどうしょうもない。初心者の上にキチガイなら死ねって感じですが。
とりあえず、スピンロックは使いたくないですね、あれはCPUタイムをすり潰しながら高速動作を確保しようとするものだから
それの主用途は、激重計算タスクを並列処理するための物であって、目的とちょっと違いますね。
あと、排他処理をちゃんと勉強すると、順序等を考えていても意味が無くて
ロックする瞬間に作業に必要になるリソースをすべて確保して、必ず抜けられるという事の方がデッドロックに対する対処としては有用です。
でも、上に書かれているように一つのオブジェクトで粒度を上げてしまったら本末転倒になります。
53: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)09:05 ID:OZ9w4Yf70(9/14) AAS
>>51
ちゃんとわかっている人を待っているんだから黙ってろ
54: (ワッチョイ 2bd4-WXs4) 2017/05/25(木)09:12 ID:foQMlEN20(2/2) AAS
アイデアを募るならもっと広い視野で考えたほうがいいってことでしょ
矮小な問題に限定されすぎていて、マイクロベンチマークレベルの不毛な議論にしかならない
状況によっては工夫すればロックフリーな実装もできるかもしれないよ
55(1): (アウアウウー Sacf-6u7H) 2017/05/25(木)09:21 ID:CcaoVCJwa(1) AAS
うわあ。これは無視すべき奴だw
56(1): (ワッチョイ 4bcd-yumd) 2017/05/25(木)09:24 ID:CNpknsWj0(3/4) AAS
>>52
外部リンク[html]:www.jpcert.or.jp
ソースはそれっぽいものを適当に引っ張ってきた
ロックする順序は意味あると思うんだけど、、、
デッドロックが怖いってことだと思うんだけどさ
親から子へ順番守ってロックすればデッドロックしないじゃん?
57: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)09:24 ID:OZ9w4Yf70(10/14) AAS
>>55
世の中上には上の奴がいるんだよ、俺なんかよりはるかに知識を持っている奴はいくらでも。
お前より俺の方が知識あるが、そんな俺よりもはるかに凄いやつは山のようにいるんだ。
そろそろ、中二病みたいな全能感は捨てな
58: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)09:32 ID:OZ9w4Yf70(11/14) AAS
>>56
親子関係があれば、親についている操作ようのメソッドにロック処理をいれれば問題ないですね。
でも、今回のは完全に独立しているオブジェクト間です。
ちょっと難しいですね。
実際問題としては、順序を使う側にすべて守らせるというのは、理屈では語れても実践的ではないかもしれません。
やはり、ロック時間を短くする事が肝要であり、その為には粒度を小さくするのが基本となるかと。
汎用的なやり方としては、この方法がもっとも優れていると思います。
なので、この方法をより高パフォーマンスで実現できるヘルパーを実装して纏めて利用したい訳です。
だから、別の方法は考えていないです。Monitorを使った高速排他処理が今回の最終目標です。
59(1): (ワッチョイ 0f75-jnQe) 2017/05/25(木)11:13 ID:5itOJ4P90(1) AAS
楽観的ロックのタイムアウトで、ロールバックするのが確実
人間には絶対にミス・バグがあるから、
デッドロックを100%、起こさないようにする事は、絶対に出来ないから
60(1): (ブーイモ MM4f-0Wf4) 2017/05/25(木)11:20 ID:ts6Ek6dYM(1) AAS
これ触っちゃいけないやつじゃん・・・
61: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)11:39 ID:OZ9w4Yf70(12/14) AAS
>>59-60
だから、もう来るなって、お前には何も聞きたいことは無いし、そんな話は聞かされたところで新たな何かには全くつながらない。
C#スレには、初心者用じゃないもう一本の匿名ゴミすれあるだろ、そっちいけよ。
分かっている人が来たときにコメントがゴミだらけになる。
62(2): (アウアウイー Sa0f-UhbI) 2017/05/25(木)12:20 ID:XlAyjrlQa(1) AAS
たぶん質問者の方が俺よりずっと詳しそうだから釈迦に説法だと思うけど、
>●例えばこれだと、デッドロックを引き起こすので良くない
>lock(obj1) lock(obj2) 処理;
これがデッドロックしうるのはこのスレッドがobj1だけをロックした状態で
別のスレッドがobj2をロックして、そのスレッドがobj1を待機してる場合だよね?
この場合このスレッドがobj1をアンロックしない限りobj2もアンロックされないからデッドロック
だから、ネストの内側のock(obj2) だけをタイムアウト付きのMonitor.TryEnterに置き換えれば
効率的かどうかはどうかはともかく、要件は満たせるんじゃいないの?
知らんけど
63: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)12:28 ID:OZ9w4Yf70(13/14) AAS
>>62
まさにその通りです、それが直下に書いた雑な例です。
このヘルパーを作りたいという訳です、見るからに美しくないので詳しい人の登場をお待ちしているという所です。
必要な全ロック取得に失敗したら即座に全て解放して、乱数時間まって次を伺う。
これはよくある教科書通りです。
64: (スプッッ Sd0f-UmYi) 2017/05/25(木)13:09 ID:a8axhl9cd(3/3) AAS
>>62
キチガイに触るなよ
65: (ブーイモ MM4f-ATwg) 2017/05/25(木)13:35 ID:Gj1BXJi/M(1) AAS
基地外大暴れワロタ
66(1): (ワッチョイ 4bcd-yumd) 2017/05/25(木)13:51 ID:CNpknsWj0(4/4) AAS
外部リンク:ideone.com
勢いで書いた。
67: (ワッチョイ fbf7-Ksx5) 2017/05/25(木)13:59 ID:OZ9w4Yf70(14/14) AAS
>>66
いいっすね、いいっすね
Thread.Sleep(100); ← ここがもうちょっとマシな待ち方になるといいんですがw
自分はインターフェイスは、IDispose使ってロック範囲を lock で書いたような雰囲気にしてます。
タイマーは、初ロック失敗の後にスタートさせて、ロック成功(大半のケース)でロスが少ないようにしてます。
なかなか素敵な感じになってくれませんw
68: (ワッチョイ 1f1b-6//c) 2017/07/11(火)08:22 ID:MCsEtOKi0(1) AAS
↓のテンプレートとジェネリックの違い、にある
外部リンク:docs.microsoft.com
トップ項目にある
・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。
"算術演算子を呼び出すことはできません"ってどーいう意味っすか?
算術演算子って+-*/のこと?
69: (アウアウイー Sacb-G8QH) 2017/07/11(火)09:57 ID:t4lUkhAUa(1) AAS
遠まわしに制約について言ってるのかな。
算術演算子が使える型のみ受け入れるような制約はできないから
自動的に算術演算子は使えないことになるわけだけど...
70: (ワッチョイ 5eea-bL4e) 2017/07/16(日)01:54 ID:mMdQfX5s0(1) AAS
楽しそうだな。w
71: (ワッチョイ 6a90-qWRz) 2017/07/29(土)20:36 ID:Gw88XuqA0(1) AAS
ジェネリックに算術演算子を使うなら、そんなに速度が要求されないんなら
(dynamic)にキャストしてからなら演算子が使える
まあこれキャッシュ付きのリフレクションだから速度は期待しないでよー
72: (ワッチョイ 331b-z1u6) 2017/08/21(月)18:56 ID:LgNyTwHt0(1) AAS
C++ではテンプレートに焦点をあてた書籍はいくつかあるけど
C#でジェネリックに絞ったオススメ書物ってのはありますか?
C++のテンプレートテクニックのどれが使えないか?ってのは知りたい。
73: (アウアウイー Sacd-4GJO) 2017/08/21(月)19:55 ID:KmAQXiSua(1) AAS
C#のジェネリックって1時間で読める記事で網羅されるぐらいの内容しかないっすよ
74: (ワッチョイ 11aa-8gPR) 2017/08/21(月)20:02 ID:vP5jpteT0(1) AAS
テンプレートテクニックとか全部忘れてOK
75: (ワッチョイ 6171-3KK3) 2017/08/21(月)21:10 ID:qdRqCzb30(1) AAS
プレートテクトニクス
76: (ワッチョイ da1b-KdCs) 2017/08/27(日)02:29 ID:/hywh0UG0(1) AAS
式テンプレートジェネリックでどー書くんだよ
77(1): (アウアウウー Sa39-B8PL) 2017/10/09(月)21:40 ID:dzl0TrLma(1) AAS
すみません。ちょっと急いでいます。
C#でクラスを宣言する際に、
class {...} とpublic class {...}
このふたつの違いが判りません。
教えてください。
78: (ワッチョイ dad2-B8PL) 2017/10/09(月)21:54 ID:rAF1hT8M0(1/3) AAS
お願いします。同じものですか?
79: (ワッチョイ 75e8-LiJ6) 2017/10/09(月)21:56 ID:28tAbNEV0(1/2) AAS
アクセス修飾子を省略したクラスは internal になる
public とか internal とかの意味については↓
アクセス修飾子 (C# プログラミング ガイド) | Microsoft Docs
外部リンク:docs.microsoft.com
80: (ワッチョイ 469f-N4fM) 2017/10/09(月)21:56 ID:u67WqECL0(1) AAS
>>77
外部から見えるか見えないか
81(1): (ワッチョイ dad2-B8PL) 2017/10/09(月)22:03 ID:rAF1hT8M0(2/3) AAS
ありがとうごぜます。
internalですね。アセンブリ言語レベルの話のようなので
まだそこまで至ってないのでpublic, private, protectedだけ使います。
すみませんでした。
82: (ワッチョイ 769a-XSap) 2017/10/09(月)22:12 ID:Y4203ffV0(1) AAS
「アセンブリ」ってみて「アセンブリ言語」って理解するのは先が思いやられるな。全然意味が違う話なのに
83: (ワッチョイ 75e8-LiJ6) 2017/10/09(月)22:16 ID:28tAbNEV0(2/2) AAS
>>81
上記のページで「アセンブリ」と言ってるのはアセンブリ言語のことではなくて
「exe」とか「dll」とかのファイル単位での機械語のまとまりのことだよ
84: (ワッチョイ dad2-B8PL) 2017/10/09(月)22:41 ID:rAF1hT8M0(3/3) AAS
ありがとう。
今自分でも調べていてなんか違うなーって思ってました。
85: (ワッチョイ 7680-HC+h) 2017/10/09(月)23:04 ID:/pZGRYTm0(1) AAS
bin
バイナリ・ファイル
86: (ワッチョイ 7d80-Wlpn) 2017/10/10(火)00:40 ID:pliWVB3X0(1) AAS
今となっては、いや初めから忘れてもいい話だったけど
ファイル単位の物理的なまとまりはモジュール(.netmodule)で
モジュールをまとめた論理的まとまりがアセンブリ(.dll/.exe)
Visual Studioが2002の初めから一貫してサポートしてないこのモジュールって単位をMSはどう使うつもりだったんだろう
87: (ワッチョイ 718a-QWl5) 2017/10/10(火)21:13 ID:9Raz+qz10(1) AAS
最終的に1つのライブラリにしたいものをC#とF#で部分ごとに書き分けるとかそういう例は見た事あるけど
(ものによってはF#のほうが書きやすいとか)
実際それが必要なユーザがどれだけいるのかって話な
88: (ワッチョイ b66c-XSap) 2017/10/10(火)23:25 ID:I+aeGBiR0(1) AAS
C++/CLIとC#の組み合わせがある。
最終的な呼び出し元はネイティブと同じ口なんだけど、
dynamicやasync/awaitなどを使いたいため、
dllexport付近の薄皮一枚だけ C++/CLI、
残りは全部C#で記述して1つの.dllにってのに.netmoduleを使う。
C#とF#の組み合わせとか、ほとんど無意味に思えるが…
89: (ワンミングク MMea-tpYQ) [sage釣] 2017/10/11(水)03:26 ID:rqqSAVqsM(1) AAS
iron python も?
90: (ワッチョイ 0b7a-7iB9) 2017/10/18(水)13:52 ID:ufsScDVj0(1/4) AAS
event解除ってnullぶっこんでもいいのかしら?
何処見ても-=でしろってのばかりで全解除の適切なやり方載ってないんだけど
一応null代入で動いてるぽいけどちと不安
91: (アウアウオー Sa63-a7FE) 2017/10/18(水)14:05 ID:4p9Ry6Jxa(1) AAS
まいなすはそれだけ消す、nullはすべて消す
できわるいコードだとnull入れると落ちるw
92(1): (ワッチョイ 0b7a-7iB9) 2017/10/18(水)14:18 ID:ufsScDVj0(2/4) AAS
全解除ってそれなりに需要あると思うんだが何処も扱ってない不思議
+=って内から外へ処理出しする訳だから
インスタンスが破棄されたら当然破棄されるべきなのにどうもそうなってない
nullぶっこめばGC回収されるみたいだけど正しいやり方なのかな
93: (ワントンキン MMd3-Pfbr) 2017/10/18(水)15:17 ID:8oWZ+6kpM(1) AAS
設計次第じゃないの
94(1): (アウアウエー Sae3-FoSE) 2017/10/18(水)15:34 ID:jnsT8t6ma(1/2) AAS
購読側じゃなく発行側が勝手に解除ってのがちょっと...
むしろどういう場面で必要になるのか想像できないな
> +=って内から外へ処理出しする訳だから
> インスタンスが破棄されたら当然破棄されるべきなのにどうもそうなってない
ここは何を言ってるのかよく分からない
まあ、イベントというかデリゲートのマルキチャストの仕組みが分かりづらいのはわかる
95: (アウアウオー Sa63-a7FE) 2017/10/18(水)15:50 ID:h6dEijxza(1) AAS
>>92
正しいというかとりあえず安全なのは何もしないの放り込んどく
それでも勝手に消されて困るのがあるかもしれんがw
96(1): (ワッチョイ 0b7a-7iB9) 2017/10/18(水)16:11 ID:ufsScDVj0(3/4) AAS
>>94
例えば非同期通信でデシリアライズ終わったらイベント投げて後は勝手に死ね、って場合
-=だと発行側で解除するのが困難でリークしちまう
最新VerC#ならTaskで後処理書けばいいけど、Unityだとつい最近まで3.5だったから
97(1): (アウアウエー Sae3-FoSE) 2017/10/18(水)16:24 ID:jnsT8t6ma(2/2) AAS
>>96
俺の理解不足だったらごめん
リークするのはイベントの購読側のオブジェクトLがイベントの購読を解除しないまま
Lを参照する変数がなくなった場合で、発行側のオブジェクトPのイベントに
Lのメソッドが登録されたままPへの参照がなくなってもそれはリークにならないと思うんですが
98(1): (ワッチョイ 0b7a-7iB9) 2017/10/18(水)16:39 ID:ufsScDVj0(4/4) AAS
>>97
そう思ってた時期が俺にもありました
しかし実際はリークしてOutofMemoryが出る
どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい
本当にそういう理屈かは知らんけどnullぶち込むと例外でなくなる
99: (ワッチョイ 797e-lqEX) 2017/10/18(水)17:26 ID:jNhOnQNR0(1) AAS
思い込みって怖いネー
100: (ワッチョイ 93b3-meYy) 2017/10/18(水)17:46 ID:GswCLlj60(1/2) AAS
>>98
>どうも購読側参照が残ってると到達可能と見られてGC回収されないぽい
登録解除してないから購読側は発行側から参照されてて回収されない
その状態で購読側が発行側を参照してるんなら発行側も回収されないよね
101(1): (ワッチョイ 7996-lqEX) 2017/10/18(水)19:19 ID:j/PgXgnk0(1) AAS
循環参照しててもルートから到達不能なら回収されるよ
されないなら単に循環参照以外の参照が何かしら残ってるだけ
いいや解放されないね!とかいう思い込みに付き合う気はないから
口ごたえがしたければ、VSのメモリーアナライザーで
リークしているというオブジェクトの参照状態のスナップショットを撮って
ここに貼り付けてから続けるように
102: (ワッチョイ 93b3-meYy) 2017/10/18(水)21:18 ID:GswCLlj60(2/2) AAS
>>101
すまんすまん、他の言語と勘違いしてた。
103(2): (ワッチョイ 318a-SWEl) 2017/11/07(火)14:20 ID:7CEykIkZ0(1) AAS
WebBrowserコントロールを使うと、レジストリ編集しないと自動的にIE7相当になってしまうんですが、
レジストリ編集無しでIE11相当にするにはどうしたらいいでしょうか?
もしくは、dllファイル1つで済むなら、他のブラウザコンポーネントでもいいです。
104: (ワキゲー MM8a-9Rqp) 2017/11/07(火)14:42 ID:uJ4GX7RNM(1) AAS
IEは他にはhtmlのmeta要素使うとか
レジストリっていってもHKCUなんだからアプリ起動時に書き込むだけのことだけど
105: (ワッチョイ 2e81-TtNK) 2017/11/07(火)18:40 ID:MJK6I9RA0(1) AAS
>>103
CefSharpっていうChromiumの実装がNuGetにあるよ
AnyCPUに対応してないんで導入が若干手間だけど気合いでがんばれ
106: (ワッチョイ 794f-mNd+) 2017/11/08(水)00:31 ID:NuL34q9d0(1) AAS
>>103
CoInternetSetFeatureEnabled
107(1): (ワッチョイ dfb3-iA8U) 2017/12/18(月)07:59 ID:mWvJQqvN0(1/2) AAS
#EntityFrameworkの質問ってここでよいですか?
EFCore+Sqliteで開発してるんですが、".db"ファイルのパス指定で困ってます。
コネクション作成時に、以下でdbパス指定をしています。
var connectionString = new SqliteConnectionStringBuilder { DataSource = @"./app.db" }.ToString();
この場合、理由がよく分かってないのですが、
Update-Databaseを実行した時(CreateDatabaseが発行される時)、プロジェクトフォルダからの相対パスになり、
SaveChangesを実行した時(Insert文が発行される時)、/bin/debugからの相対パスになります。
毎回相対パス指定を変えるのが面倒で、かつ絶対パス指定はしたくないもので。
何か良い方法はありませんでしょうか。
108: (ブーイモ MM63-9jqv) 2017/12/18(月)13:46 ID:325qmzymM(1) AAS
ここじゃないと思うの
109(1): (ワッチョイ 1e9e-rCI4) 2017/12/18(月)14:56 ID:dTBoNCZ50(1) AAS
>>107
で、app.dbはどこに有るのよ、
110(1): (アウアウウー Sac3-u/A4) 2017/12/18(月)14:57 ID:E4FIT7xPa(1) AAS
俺ならexeパス取得して絶対パス作ってそれ使うけど、
絶対パスいやならカレントフォルダ変更したら?
111: 107 (ワッチョイ dfb3-iA8U) 2017/12/18(月)23:30 ID:mWvJQqvN0(2/2) AAS
>>109
プロジェクトフォルダにできます。
ただ、プログラム実行時は別のパス見てるからDBないエラーになります。
>>110
あー、それいいかもです。
やってみます。
112: (ワッチョイ cbb3-RYVm) 2017/12/31(日)15:13 ID:n7dS7ECy0(1/2) AAS
個々の人ってWinFormとWPFどっちで作ってる?
113: (ワッチョイ 06ed-FiVz) 2017/12/31(日)15:13 ID:K0nOGJob0(1) AAS
WPF
114: (アウアウウー Sa2f-dmgG) 2017/12/31(日)16:15 ID:jcdX0HHma(1) AAS
何度聞かれてもformだ
115: (ブーイモ MM76-cnjM) 2017/12/31(日)16:16 ID:PdI3PgJiM(1) AAS
オレも2年前からWPFにした。
116: (ワッチョイ 67f2-RYVm) 2017/12/31(日)16:35 ID:GvxCaHuK0(1) AAS
新規は基本的にWPFだけど、使い捨てのツールはFormsのことも多い。
117: (アウウィフ FF2f-gocz) 2017/12/31(日)16:54 ID:Jm0z8SXaF(1) AAS
昔はVSが何かっつと即堕ちして使いもんにならんかったが
今はまともになったんかねWPF
118(1): (ワッチョイ cbb3-RYVm) 2017/12/31(日)17:32 ID:n7dS7ECy0(2/2) AAS
WPFって技術資料があんまないから、つっかかりにくいんだよなあ
119(1): (ワッチョイ decc-vQtD) 2017/12/31(日)18:07 ID:jSVu2Yi+0(1/2) AAS
>>118
日本語が変だな
外国人?
120: (アークセー Sx03-tbBN) 2017/12/31(日)18:22 ID:OKQGXBiEx(1) AAS
>>119
あれだ外人からみれば
そうみえんじゃねw
121: (ワッチョイ decc-vQtD) 2017/12/31(日)20:17 ID:jSVu2Yi+0(2/2) AAS
つっかかりにくい→つかえやすいorつっかえやすい
それとも
つっかかりにくい→とりつきにくいorとっつきにくい
あんまない→あまりないorあんまりない
122: (アウアウウー Sa2f-dmgG) 2017/12/31(日)20:22 ID:TCYSbVmxa(1) AAS
読解力ないな
外国人?
123: (ワッチョイ 4ae1-uLLi) 2017/12/31(日)20:26 ID:sT88mvz00(1) AAS
読解力が無かったら修正例は書けないと思う
124: (ワッチョイ 5f81-Ixt9) 2017/12/31(日)21:26 ID:mh0j3eXv0(1) AAS
どこかの田舎もんが書いた文章なんだろ
125: (ワッチョイ cbb3-RYVm) 2018/01/01(月)08:43 ID:qva7Cn1y0(1) AAS
そんな事にも突っ込まないといけないほど余裕がないんだろうな
126(2): (ワッチョイ 7b17-Ogju) 2018/01/08(月)21:07 ID:ff9XOb220(1/2) AAS
ILMergeについて質問です
例えば自作アプリ X.EXE に外部ライブラリ A.DLL と B.DLL を結合して X2.EXE を作ったとします
この X2.EXE を配布する場合、A.DLL と B.DLL の著作権情報を明記すれば問題ないという認識で合っていますか?
127(1): (ワッチョイ 0f9a-+W2v) 2018/01/08(月)21:23 ID:/QyX6ETP0(1) AAS
>>126
それはILMerge関係なくA.DLL と B.DLL のライセンスの問題です
結合が禁止されていなければ添付して配布するのと同じになります
どんなライセンスかによって違うので
【License】ライセンス総合【利用許諾】
2chスレ:tech
へどうぞ
上下前次1-新書関写板覧索設栞歴
あと 875 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.252s*