C#, C♯, C#相談室 Part92 at TECH
[2ch|▼Menu]
[前50を表示]
400:デフォルトの名無しさん
17/03/08 18:12:34.14 ZazPDLJU.net
Windowsでもexeの中にあるMSILを
特定のプログラムでコンパイルしないと動かないぞ

401:デフォルトの名無しさん
17/03/08 18:13:37.64 NpQQdkRq.net
>>385
クロスプラットフォームにこだわるのならC#使わない方がいいだろ
>>383に書いてあるようにDllImportとか入っていたらどうしようもないんだから

402:デフォルトの名無しさん
17/03/08 20:03:39.84 VZtOnmtc.net
EF使いたいけど仕事での開発は腐りきったDBと手続き型の権力者が支配しててうまくいかないよ
ビジネスロジックはほとんどSQLとストアドに書かれ
ホスト言語はデータセットをUIとバインドするだけ
マイクロソフトは業界の現実を見据えたフレームワークを提供してほしい

403:デフォルトの名無しさん
17/03/08 20:08:18.13 jS0zQn/F.net
ジャップローカルな業界標準なんか基準にしても仕方ねーだろ

404:デフォルトの名無しさん
17/03/08 20:25:11.68 q0ZuMA54.net
今後は品質を上げるためにC#やめてJavaにするってさ
品質を上げるために
誰だよJavaオワコンとか言ってたの
Javaつよすぎんだろ

405:デフォルトの名無しさん
17/03/08 20:37:42.27 WDLIW5bb.net
新しく、C++,C#,Javaを超える言語の誕生を切に願う

406:デフォルトの名無しさん
17/03/08 20:43:44.50 YCUi9zWw.net
>>390
実際Javaは周辺技術はすごい
世界中の叡智が結集して糞を料理し、なんとか食えるものにしてる

407:デフォルトの名無しさん
17/03/08 20:50:23.47 YUr8l1RF.net
Java人にとってWindowsは周辺ではなく僻地です。

408:デフォルトの名無しさん
17/03/08 21:09:03.23 psTqZ+Sc.net
なんか中国人みたいだな

409:デフォルトの名無しさん
17/03/08 21:32:29.32 U5noIHdN.net
javaはoracleの時点で将来どうなるか判らないって不安がつきまとう
golangもgoogleだから不安がつきまとう
swiftもappleだから


410:粕N後の未来も予測出来ない でも不思議とc#とmsの場合はあんまそういう不安が無い



411:デフォルトの名無しさん
17/03/08 21:39:55.81 Uljnsbub.net
>>388
>ビジネスロジックはほとんどSQLとストアドに書かれ
最適化のためにしかたなくストアド化することはあっても
ビジネスロジックまるごととかあるんだね
おいたわしゅう

412:デフォルトの名無しさん
17/03/08 21:49:14.72 YUr8l1RF.net
Javaが糞遅いからC#じゃないのか。
Javaと同じ設計をしたいならJavaを使えばいい。

413:デフォルトの名無しさん
17/03/08 21:51:54.89 MEKWLPl8.net
Windowsで趣味で遊ぶのにC#より楽な言語が無い

414:デフォルトの名無しさん
17/03/08 22:28:25.34 gllfe4Ss.net
みんな仕方なくうんこなJava使ってるだけだから。
大人の事情。

415:デフォルトの名無しさん
17/03/08 23:15:48.59 nWki5I6G.net
>>397
いやJavaが使われるような分野ならJava(やその周辺のライブラリ類)は糞速い
クライアントじゃビチグソだが

416:デフォルトの名無しさん
17/03/08 23:21:37.62 YUr8l1RF.net
高速ライブラリはすべてC++とアセンブラで書かれてます。

417:デフォルトの名無しさん
17/03/08 23:31:16.51 RgWWdtUJ.net
結果的には現実的な判断だったと思うよ。
OracleにはJavaを伸ばすほどの能力はない。
環境の互換性に固執した結果、エコシステムがブラッシュアップされたのならそれでOK。
あとはC#で実験済みの便利機能を順に採り入れていけばいい。
C#がJavaに滅ぼされない為には数歩先を走り続けるしかない。
そのうちにJavaと同レベルのエコシステムが揃えられればJavaを食えるかもしれないが、
これはかなり厳しいとは思う。

418:デフォルトの名無しさん
17/03/09 00:10:57.40 x6aOWZGA.net
Javaのエコシステム!?
今Javaの一番メジャーなパッケージマネージャって何?
rubygemsやnpmみたいなのないって聞いたら
Mavenでpom.xmlって言われて愕然としたことがある

419:デフォルトの名無しさん
17/03/09 00:43:02.76 zrZoqbyp.net
>>403
Mavenで用は足りるし、LLっぽいのがお好みならGradleも人気

420:デフォルトの名無しさん
17/03/09 07:33:43.82 i1kRuTOP.net
>>388
EFって何がいいの?
そんなの使わなくてもsql実行すればいいんじゃないの?

421:デフォルトの名無しさん
17/03/09 19:18:10.50 NWFSmelL.net
>>405
ORMでググれ

422:デフォルトの名無しさん
17/03/09 19:27:05.21 kp/XS3en.net
operational risk management
業務運営リスク管理
sqlを文字ではなくオペレーションとして記述できるからsqlコマンド記述ミスによるバグやsqlインジェクションに強くなり
リスク回避に繋がるソース運営や管理ができる

423:デフォルトの名無しさん
17/03/09 19:28:46.08 ekX4ZlFq.net
C言語って何がいいの?
そんなの使わなくてもアセンブラ使えばいいんじゃないの?
35年前の会話

424:デフォルトの名無しさん
17/03/09 19:38:38.06 6OW1VF+t.net
ただまあ、便利な道具も、出来の良し悪しというのがあって

425:デフォルトの名無しさん
17/03/09 19:39:54.78 NWFSmelL.net
>>409
使う側の頭の良し悪しってことかな

426:デフォルトの名無しさん
17/03/09 19:43:58.45 6OW1VF+t.net
そう、EFはあまり出来は良くない

427:デフォルトの名無しさん
17/03/09 19:45:09.07 NWFSmelL.net
>>411
具体的に

428:デフォルトの名無しさん
17/03/09 20:12:05.29 J4siqdXV.net
クエリビルダとかコードファーストは要らないかな
まっさらなDB扱う機会なんてそうそうないし

429:デフォルトの名無しさん
17/03/09 21:56:54.03 i1kRuTOP.net
>>407
sql記述ミスしなければいいだろ。

430:デフォルトの名無しさん
17/03/09 22:09:20.08 ZZ1gzprq.net
>>413
既存DBからのコードファースト

431:デフォルトの名無しさん
17/03/09 22:09:48.58 GqwkUUnW.net
>>414
ばーか

432:デフォルトの名無しさん
17/03/09 22:25:30.67 FW6HepzM.net
>>414
そんな根性論・精神論的なものでミスは無くならないよ

433:デフォルトの名無しさん
17/03/09 22:38:08.68


434:i1kRuTOP.net



435:デフォルトの名無しさん
17/03/09 22:45:19.50 mybEc7J1.net
SQLじゃ静的チェックが効かないし、列名とメンバ名のマッピング作業でミスを生じやすい

436:デフォルトの名無しさん
17/03/09 23:05:42.43 ZZ1gzprq.net
EntityFramework以前の問題だなこいつ

437:デフォルトの名無しさん
17/03/09 23:06:17.34 ojqe9dcn.net
>>411
具体的に

438:デフォルトの名無しさん
17/03/09 23:10:24.76 4hz9mkjX.net
おそい
かたい
つかいづらい

439:デフォルトの名無しさん
17/03/09 23:15:15.25 ZZ1gzprq.net
>>422
おそい→単純に速さを求めるならDapper使えば?EFは速さが目的のORMじゃないし
かたい→意味不明
つかいづらい→馬鹿ならプログラミング諦めれば?

440:デフォルトの名無しさん
17/03/09 23:15:20.88 i1kRuTOP.net
>>422
確かに遅いよね

441:デフォルトの名無しさん
17/03/09 23:15:56.47 OsFG/gY3.net
>>422
日本語でよろしく

442:デフォルトの名無しさん
17/03/09 23:16:37.66 OsFG/gY3.net
>>424
うん、当たり前だよね

443:デフォルトの名無しさん
17/03/09 23:36:02.15 4hz9mkjX.net
>>423
→おそい
昨今なにが速度のボトルネックってDBアクセスなのにおそくていいわけがない
→かたい
なんというか、型が固いんだ…
データいっぱい取ってきてもダックタイピングとかないからいちいち入れ替えなきゃいけないし
メソッドをまたいでデータをやり取りしづらい
→つかいづらい
変な落とし穴いっぱい
あと抽象化しすぎ
DBと通信するタイミングとかこっちの好きにしたい

よさそうだった
よさそうだったんだ…
ちょっと触った最初の一瞬は夢が見れたが

444:デフォルトの名無しさん
17/03/09 23:39:24.67 P0KhFIxP.net
>>427
お前C#向いてないからやめとけ

445:デフォルトの名無しさん
17/03/09 23:40:17.24 4hz9mkjX.net
なんでよ

446:デフォルトの名無しさん
17/03/09 23:45:18.70 ZZ1gzprq.net
>>427
生のADO.NETと比較すると遅くても、実運用に耐えられる程度なら問題ない
遅さのデメリットをメリットが上回る場合に採用すべき
設計ミス
お前の頭が足りてないだけ
抽象化しないとInMemoryやFakeのIDbcontext使ってUnit Testできない

447:デフォルトの名無しさん
17/03/10 00:07:57.78 Kg4/WRpJ.net
>>430
Dapperのところ見ると10倍以上遅いって数字弾いているし
体感上も遅いだろ
URLリンク(github.com)

448:デフォルトの名無しさん
17/03/10 00:14:08.74 cBCq3F3F.net
>>431
日本語

449:デフォルトの名無しさん
17/03/10 00:15:07.75 PorFrx4J.net
>>431
遅いのは皆わかってるんだけど
何言ってんのこいつ

450:デフォルトの名無しさん
17/03/10 00:29:46.92 cBCq3F3F.net
>>431
そのEntityFramework、3世代前くらいじゃね?
こっちの方がまともに比較してる気がする
URLリンク(msdn.microsoft.com)

451:デフォルトの名無しさん
17/03/10 00:35:01.00 PorFrx4J.net
誇大広告ワロタ

452:デフォルトの名無しさん
17/03/10 00:47:22.95 Cysk3AQ/.net
>>431
Dapperを使ってメモリ上でUnit Testやる方法教えて

453:デフォルトの名無しさん
17/03/10 01:56:20.00 YvYLhW/g.net
割といままで関わったプロジェクトは、敢えてスドアドで疎結合にしてるの多かったな。

454:デフォルトの名無しさん
17/03/10 05:22:26.01 hxjDKO5o.net
以下のページを参考にしてい
指定したURLからHTMLを取得するプログラムを作成しております
URLリンク(www.kekyo.net)
取得する処理を作成することは出来たのですが
取得処理を走らせてからリクエストが帰ってくるまでの間
GUIの操作が一瞬とまってしまう現象が発生しております(一瞬フリーズするような感じです)
ですので連続してhtmlを取得したり、サイズの大きなものを取得する場合
長時間フリーズしてしまうことになるので大変困っております
どなたか解決方法をご存知の方がおりましたら
教えていただければ幸いです
よろしくお願いします

455:デフォルトの名無しさん
17/03/10 05:22:50.13 hxjDKO5o.net
ちなみに参考にしたソースは以下の通りです。
public static async Task<string> ReadFromUrlAsync(Uri url)
{
using (WebClient webClient = new WebClient())
{
using (Stream stream = await webClient.OpenReadTaskAsync(url))
{
TextReader tr = new StreamReader(stream, Encoding.UTF8, true);
string body = await tr.ReadToEndAsync();
return body;
}
}
}
public static async Task DownloadAsync()
{
Uri url = new Uri("URLリンク(github.com));
string body = await ReadFromUrlAsync(url);
Console.WriteLine(body);
}

456:デフォルトの名無しさん
17/03/10 07:53:36.33 /HdMhfmB.net
>>437
ストアドはビジネスとデータが密着して全く疎にならないだろ

457:デフォルトの名無しさん
17/03/10 07:55:23.13 LDoDwujD.net
>>437
かわいそうに

458:デフォルトの名無しさん
17/03/10 07:56:43.00 CZUjNxSc.net
普通シングルスレッドでは、処理中は、
進捗状況を表示するプログレスバーでも、描画が止まるから、
GUI/worker用のスレッドは、別々のマルチスレッドにする
プログレスバー描画のサンプルでも見れば?

459:デフォルトの名無しさん
17/03/10 09:46:49.61 ccNaYHW5.net
>>437
そのうちいいことあるよ、頑張って

460:デフォルトの名無しさん
17/03/10 11:25:04.92 LzpSY1Zb.net
>>438
WebClient(とその中で使ってるHttpWebRequest)が
名前解決部分を非同期化できてないっぽい
HttpClientを使おう

461:デフォルトの名無しさん
17/03/10 12:24:52.88 /STnO1DK.net
え?みんなEF使わないがデフォなの?

462:デフォルトの名無しさん
17/03/10 12:26:08.18 Tes7zBzn.net
あんなものを使うのはお勉強ができるだけの無能だけ

463:デフォルトの名無しさん
17/03/10 12:36:20.43 wvkqDHaL.net
>>445
使わないじゃなくて使えないんじゃない?新しいことを学習できないんだよ

464:デフォルトの名無しさん
17/03/10 12:46:27.34 Tes7zBzn.net
新しいものに飛びついてもあとであれはゴミだったというものもたくさんある
EJB2.0とか

465:デフォルトの名無しさん
17/03/10 12:51:59.29 wvkqDHaL.net
>>448
それはその通りだね
EntityFrameworkはもうそろそろ10年たつんだけど

466:デフォルトの名無しさん
17/03/10 13:10:03.19 mpFYTheR.net
やっぱJavaなんやね

467:デフォルトの名無しさん
17/03/10 13:53:22.42 AGPJ29Rn.net
新しいのを使うのも、古いのを使い続けるのも、どっちも長所短所がある
同じ長所短所でも環境によって評価が変わるからどっちが絶対にいいってのはない
それ考慮してどっち使うって当たり前の選択ができない奴多すぎるんだよ

468:デフォルトの名無しさん
17/03/10 15:40:00.20 y8xCqliG.net
>>440
んなの書き方によるだろ

469:デフォルトの名無しさん
17/03/10 18:15:05.97 NraHDdZK.net
使って文句ないやつは使ってればいいのよ。
俺は使うのをやめた。理由を他人に説明する必要も、他人が納得する必要もない。

470:デフォルトの名無しさん
17/03/10 18:36:12.55 wvkqDHaL.net
>>453
使えるやつは使う、使えないやつは使わない

471:デフォルトの名無しさん
17/03/10 18:42:37.52 NraHDdZK.net
そういうこった。俺には使えない。

472:デフォルトの名無しさん
17/03/10 18:43:15.86 NraHDdZK.net
使わなきゃ、使いにくいとこも分かんないからな。

473:デフォルトの名無しさん
17/03/10 18:46:25.98 Gc8NaZGi.net
世の中はまだWinFormsだからな。
新しいものに対応できないジャパン。

474:デフォルトの名無しさん
17/03/10 18:49:44.85 YN/8CtFT.net
>>456
ADO.NET直書き?

475:デフォルトの名無しさん
17/03/10 19:38:33.09 jSwjVui3.net
>>457
Microsoftはバグ管理にExcel使ってるんだぞ
振り回されたらあかん

476:デフォルトの名無しさん



477:sage
DotNet CoreでバッサリWebFormsとDataSet切り捨ててくれたから 日本もこれからはMVCとPOCOにシフトしていくだろうね(希望)



478:デフォルトの名無しさん
17/03/10 20:10:01.97 cBCq3F3F.net
>>445
基本的にはEntityFrameworkで、パフォーマンスほしいとこはDapper

479:デフォルトの名無しさん
17/03/10 20:35:03.91 BdCDiQus.net
dapperって何がいいの?

480:デフォルトの名無しさん
17/03/10 20:40:29.72 cBCq3F3F.net
>>462
上にもいろいろ比較出てるけど、とにかく速くて簡単
DBとオブジェクトの最低限のマッピングだけでいい場合はこれで十分

481:デフォルトの名無しさん
17/03/11 09:49:08.82 +LwMML+J.net
動的だけど滅多にソースが更新されないほとんど静的なページのキャッシュってどう扱えばいいんですか?
クライアントにキャッシュさせて更新があった時だけアクセスしてほしいです

482:デフォルトの名無しさん
17/03/11 09:53:48.23 h5T3JHpB.net
>>464
ブラウザーがやってくれるんじゃないか?

483:デフォルトの名無しさん
17/03/11 13:46:01.01 SoGUL2Zu.net
VisualStudio2017お試しで使ってるんだけれど
タプルとか求めていたものが有ったので使おうとしたら
ValueTupleのライブラリが標準で入らずNuGetにしか無いとか
まだ安定しない無いとか何かあるんだろうか・・・
凄い作りかけ感あるコンパイラに仕上がってるwww
使うべきか暫く様子見すべきか?

484:デフォルトの名無しさん
17/03/11 13:50:47.46 /3A6iA0R.net
Windowsのcsc.exeでコンパイル出来ないC#6.0も見送ってるならそうだな

485:デフォルトの名無しさん
17/03/11 14:02:34.64 SoGUL2Zu.net
タプルの利用はしばらく様子見にしとくか・・・何か怪しいし。
ローカル関数いいね、これやる時名前空間が汚れてインテリセンスが腐るから欲しかった
これだけでも移行価値は無くは無いか・・・
IEnumerable<int> Enumerate(int begin, int end)
{
 if (end < begin
  || end < 0
  || begin < 0)
   throw new System.ArgumentOutOfRangeException("ほげぇ");
 IEnumerable<int> Body()
 {
 for (int i = begin; i <= end; ++i)
  yield return i;
 }
 return Body();
}

486:デフォルトの名無しさん
17/03/11 14:40:42.15 SoGUL2Zu.net
ちらちら見ていると、ValueTaskの方はもっと状況が酷いのかなw
URLリンク(www.buildinsider.net)
言語みたいな基幹部分を小出しにするとか、頭おかしくなってるなw
今までそんな事をした言語の末路がどうなったか知らないわけじゃなかろうに・・・
NuGetにして普通にコードする人には使わせないようにするのは、これはヤバイと中の人が感じているのかもしれんね
マイクロソフトの技術力&組織力低下酷いな、半端に才能ある奴のスタンドプレーでグダクダなってるんだろうな。
Web系に翻弄され過ぎだろ
とりあえず使えそうなのは、ローカル関数と型switchくらいかな
この辺りなら変更あってもダメージ少ないだろうし。
タプルの実装に致命的問題があるならローカルclass&struct&enum宣言でもええんやでぇ
名前空間お腐れ問題はカッコイイ事しなくても、これでも解決するんや > microsoft

487:デフォルトの名無しさん
17/03/11 15:24:01.58 SoGUL2Zu.net
>>218
横だけど、式木はちゃんと言語でサポートしなきゃ誰にも読めない言語になるなと思った。
逆に、それ自体は難解


488:でもないし難しい話じゃないなとも。 プログラムとは違うけれど 3Dモデラーでツリー構造とか法線とか難解な数学概念が見ての通りの操作で動かしたり創れたりするようになって 門外漢の3Dデザイナーが普通に使えるようになったように 一度概念をキッチリ整理する必要があるんだよ、あれは。 そして言語の作りこみがあの頃から甘くなってき始めてたな、ちょっと残念な感じになっていった時代だね。 とりあえず腐り過ぎのWin10をWin7の仕様に戻せや、ストアもユニバーサルアプリも使い物にならん、色使いも糞でUIが見ずらい > microsoft あと、WindowsUpdateのタイミングはユーザーの自由にさせよ、お前がお前のタイミングで勝手にやったら業務はむちゃくちゃになる。



489:デフォルトの名無しさん
17/03/11 22:05:54.03 h5T3JHpB.net
>>466
タプルなんて昔からあるだろ

490:デフォルトの名無しさん
17/03/11 22:18:07.78 15EAzLR8.net
>>471
残念ながら昔からあるTuple<>とは全くの別物
機能的には匿名型にも似ているが、匿名型との互換性もない
ローカル関数なんかも極めて場当たり的なゴミだろ
デリゲートの型を省略できるようにして var func = (int x) => x * 2; と書けた方がずっと便利

491:デフォルトの名無しさん
17/03/11 22:40:13.41 7U1HyGmG.net
>>472
いつからここが初心者用になったんだ

492:デフォルトの名無しさん
17/03/12 01:14:05.08 +ulIycHH.net
>>469
URLリンク(github.com)
によると、.NET4.7に入れることにしたみたいだね
nugetで済むのに.NETのバージョンを上げるのは面倒が多いし、今後C#のリリース速度を早めるならある程度まとめて.NET4.7にしようって考えじゃないかなぁ
言語機能の小出しについても他の言語と比べれば遅いし、互換性と将来を考えて慎重に作ってるから完全な完成を待つと永遠にリリースできなくなっちゃうし、やむをえんだろ
CLRのバージョンを保ってくれれば文句は無い

493:デフォルトの名無しさん
17/03/12 02:13:23.38 lK2SBg8L.net
List<string> list; があって
そのlistのx番目からy個文字列連結したいのですがLinqでどう書けますか?
x番目から3個なら
var result = $"{list.Skip(x).Take(1).FirstOrDefault()}{list.Skip(x + 1).Take(1).FirstOrDefault()}{list.Skip(x + 2).Take(1).FirstOrDefault()}";
こんな感じですけど短く綺麗にしたいのですが…

494:デフォルトの名無しさん
17/03/12 02:33:41.68 tHLqC2EA.net
>>475
var result = String.Join( "", list.Skip(x).Take(y) );

495:デフォルトの名無しさん
17/03/12 05:07:11.99 lK2SBg8L.net
>>476
わー、短くて綺麗。
ありがとうございました。

496:デフォルトの名無しさん
17/03/12 06:43:42.92 RIOf9bqD.net
>>472
>デリゲートの型を省略
できるならとっくにやってるんじゃないかなw
ラムダ式は書けるコードが限定され過ぎるのが問題かな。>>468 はそれではどうやっても書けないでしょう。

497:デフォルトの名無しさん
17/03/12 08:53:09.32 bReP5RFT.net
>>475
自分で理解できねーもん他人に強制するその姿勢がすでにクソ
なんでその処理linqで書いた?
しかも自分は掲示板で質問しなきゃわかんねーのに
さっさと辞めちゃえお前
伸びる目もねーから

498:デフォルトの名無しさん
17/03/12 09:23:31.23 7tB+K/sW.net
何でこの人キレてんの?あの日?

499:デフォルトの名無しさん
17/03/12 10:01:53.12 RIOf9bqD.net
みるからに自演臭くてキモイからじゃねw

500:デフォルトの名無しさん
17/03/12 10:23:22.36 1QMoXo8Q.net
ラムダ式自体は型を持たないから、delegate型と決めつけてvar対応するなら専用のルール付けが必要だと思う。
そこまでする価値は無いかな。

501:デフォルトの名無しさん
17/03/13 06:11:29.33 o9PLbB2Z.net
すいません質問なんですが
アプリ起動中はAキーを推すと左クリック Bキーをおすと右クリック Cキーを押すとアプリ終了
みたいな感じでキー入力をマウス入力にいれかえるようなアプリを作りたいんですが
Windows上でフォーカスのあるウインドに依存せずにキー入力を取得するのってどうしたらいいんでしょうか

502:デフォルトの名無しさん
17/03/13 06:55:37.31 2GKmTNuX.net
以前、遠隔ウイルス片山も似た質問していましたね。

503:デフォルトの名無しさん
17/03/13 07:01:39.19 WHuP7MmV.net
フォームのKeyPreviewプロパティをTrueにすると、すべてのキーイベントをまずフォームが受け取り、処理が終了してからフォーカスのあるコントロールに渡されるようになります。
ってdobon.netで見つけた
やったことはない

504:デフォルトの名無しさん
17/03/13 07:17:17.53 o9PLbB2Z.net
ありがとうございます
KeyPreviewについて調べてみます

505:デフォルトの名無しさん
17/03/15 09:07:02.25 k1u612YY.net
すみません、EFで質問させて下さい。
下記のようにエンティティを定義して、それを編集するクライアントを作ろうとしています。
とりあえず、Modelに対する編集は無効にしてあるものとします。Unitに変更を加えて保存すると、
DBの中でModelのレコードが増えてしまいます。NameにUnique制約を付けると当然例外が派生します。
Unit.ModelがDbContextの管理外になってしまったので、別のインスタンスとして認識されているという理屈は分かります。
contextを都度作成せずに維持していれば、期待する動作になるのも分かりますが、それはできればしたくはないです。
何か上手い解決方法はないでしょうか?
public class Model
{ public int ModelId {get;set;}
 public string Name {get;set;} ※
}
public class Unit
{ public int UnitId {get;set;}
 public VM Model {get;set;}
 public string Serial {get;set;}
}
List<Unit> GetUnitList()
{ using (var context = ...)
 { return context.units.Include(x => x.model).Select(x => x).ToList(); }
}
void UpdateUnit(Unit unit)
{ using (var context = ...)
 { var target = context.units.Where(x => x.UnitId == unit.UnitId).FirstOrDefault()
  target.Model = unit.Model;
  target.Serial = unit.Serial;
  context.SaveChanges();
 }
}
var list = GetUnitList();
...リスト表示->エディタでunit.Serialを編集
UpdateUnit(unit);

506:デフォルトの名無しさん
17/03/15 09:27:37.16 N2+3G59G.net
>>487
そこまで分かってるなら解決策は簡単。
ModelIdで検索し直す。

507:デフォルトの名無しさん
17/03/15 11:16:57.42 k1u612YY.net
>>488
ありがとうございます、すっきりしました。
期待する結果に対してのコストが少々重くなるかなという気はしているのですが、
処理コストが問題になるほどの規模ではないので、そうさせて貰います

508:デフォルトの名無しさん
17/03/16 03:52:05.80 l+qA2/0G.net
C#でwebBrowserを使ってるんですが
以下のhtmlをwebBrowser.DocumentTextに突っ込んで表示させたいんですが
何故かwebBrowserではそのままjqueryを読み込むことが
できないようでスクリプトエラーが発生してしまいました
対処方法のわかる方いたら教えていただけますでしょうか?
↓以下のhtml
<!DOCTYPE html>
<head>
<meta charset=""utf8"">
<script src=""URLリンク(code.jquery.com)


509:.min.js""></script> <script type=""text/javascript""> $(function() { alert(""test"") }); </script> </style> </head> <body>



510:デフォルトの名無しさん
17/03/16 11:36:09.87 oyR0ujl0.net
なんでダブルクォーテーション2つ続いてるの?

511:デフォルトの名無しさん
17/03/16 16:49:18.07 l+qA2/0G.net
エスケープです
文字列に突っ込んでるのをそのままコピペしちゃったのでそのようになってます
すいませんがエスケープは無視して考えてください。

512:デフォルトの名無しさん
17/03/16 16:58:42.52 Qa1xgsfZ.net
<style>
<head>
<body>
</style>
</head>
</body>

最後のbodyを/スラッシュで括ってないからでは?

513:デフォルトの名無しさん
17/03/16 17:03:26.21 RyFuDdep.net
>>493
君は冷静だな

514:デフォルトの名無しさん
17/03/16 17:05:05.86 Qa1xgsfZ.net
HTMLソース
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5サンプル</title>
</head>
<body>
<p>HTML5で作成しました!</p>
</body>
</html>
連投ですまん
もっと解り易いサンプル

515:デフォルトの名無しさん
17/03/16 18:14:35.84 kQHrflry.net
WebBrowserがデフォだとIE7モードで動くせいでjquery 2.1.4が動かない
・jquery 1系使う
・headに
<meta http-equiv="X-UA-Compatible" content="IE=edge">
等を書く
・レジストリでモード変更する
好きなのどうぞ

516:デフォルトの名無しさん
17/03/16 18:38:16.89 RyFuDdep.net
>>496
君は詳しいな

517:デフォルトの名無しさん
17/03/16 20:09:32.60 G/L2rMHg.net
簡単に単体テストできるのか知りたいです
public static async Task DoHeavyAsync(string path, IProgress<long> progress, CancellationToken token)
という非同期メソッドの単体テストで、同期版の DoHeavy() と同様のテスト以外に、
(1) progress が動作していることの確認
(2) token が動作していることの確認
が必要だと思います
(1) が簡単ではない
var progress = new Progress<long>(n => { Assert.Fail(); });
などやっても、テストが成功してしまう(レポートがメソッド終了後に届くため)
まじめにやるとしたら別スレッドを作る必要がありそう?
(2) は、巨大ファイルを使って new CancellationTokenSource(20) などでキャンセルされることを確認という
汚い手法でテストしています(処理速度があがった場合にテストが失敗する可能性があるのが汚い点)
(1)と(2)、それぞれどのようにテストするべきでしょうか? 特に(1)
NUnit を使ってますが、他のフレームワークでもいいです

518:デフォルトの名無しさん
17/03/16 20:16:08.57 kgKaK9fl.net
非同期処理の確実なテスト方法は存在しないのでどっかで妥協しなきゃならない

519:デフォルトの名無しさん
17/03/17 07:37:50.30 gTyXrRTf.net
よく分からんな
Taskなんだから結果が出るのを待機すればいいだろ
Progressは呼ばれたらcalledフラグを立てるようにしてそいつでAssetする
タイムアウトが必要かどうかは状況次第
2つめは、内部でFileStreamを使っているならだが
Streamを受け取るインターフェースを追加する
クッソ遅いStreamは自由に再現できる

520:デフォルトの名無しさん
17/03/17 08:16:11.77 VDcrtJ6N.net
>>496
ありがとうございます!大変助かりました!

521:デフォルトの名無しさん
17/03/17 21:11:54.40 G6TjLWRU.net
>>499
やっぱり妥協かなー
>>500
(2) はなるほどね。作ってみる
(1) なんだけど、Progress.Report() での通知は、タスクを await で待機したとしても、
待機が終わった後でも Action<T> が呼ばれているとは限らない
巨大なタスクを


522:渡して、 Progress.Report() が『たぶん』呼ばれるという妥協が必要かなー 単体テストをパスしたとしても、たまたま運良く Action<T> が先にスケジュールされただけだよ 下記のコードはうちの環境ではテストに失敗してた public static async Task DoLightAsync(IProgress<long> progress) { await Task.Delay(10); progress.Report(123); } [Test] public async Task DoLightAsyncTest() { bool called = false; await DoLightAsync(new Progress<long>(n => { called = true; })); Assert.IsTrue(called); }



523:デフォルトの名無しさん
17/03/18 00:00:39.16 3lIBsEeS.net
惜しいところまでは行ってるな
Progressのインスタンスを渡すのではなく
IProgressを継承し同期のReportを実装したクラスのインスタンスを渡す

524:デフォルトの名無しさん
17/03/18 10:58:29.15 UTVmwL6L.net
ふむー、こうか
確かに Progress<T> にこだわる必要はなかったなー
public class SynchronousProgress<T> : IProgress<T>
{
private readonly SynchronizationContext _Context;
private readonly Action<T> _Action;
public SynchronousProgress(Action<T> action)
{
_Action = action;
_Context = SynchronizationContext.Current ?? new SynchronizationContext();
}
private void Callback(object state)
{ _Action?.Invoke((T)state); }
public void Report(T value)
{ _Context.Send(Callback, value); }
}
見づらいと思うので一応 pastebin にも貼っておく
URLリンク(pastebin.com)

525:デフォルトの名無しさん
17/03/19 00:14:21.68 xAk2llJg.net
ファイルのタイムスタンプを指定した時刻に変更したいんですが、コードのヒントをくださいm(_ _)m

526:デフォルトの名無しさん
17/03/19 00:19:27.37 8DI2TWvJ.net
>>505
FileInfo

527:デフォルトの名無しさん
17/03/19 00:30:52.74 VKtnwSVx.net
「ファイルのタイムスタンプ」でグーグル先生に聞けば
URLリンク(www.atmarkit.co.jp)
が一発で出てくるんだけど掲示板で聞く方が面倒じゃないの

528:デフォルトの名無しさん
17/03/19 06:34:49.31 bkt1N2YW.net
検索知らないんでしょ

529:デフォルトの名無しさん
17/03/19 13:50:14.09 PWrmpV5o.net
2chスレへたどり着けるのに検索知らないとかこれ如何に

530:デフォルトの名無しさん
17/03/19 14:33:00.16 DWsQT7k4.net
「お前ら、検索頼むわ(丸投げ)」

531:デフォルトの名無しさん
17/03/19 14:45:08.30 1DEeFth3.net
おまいらは回答する機械

532:デフォルトの名無しさん
17/03/19 14:53:33.02 VKtnwSVx.net
まあ調べたら自分の新しい知識になる場合もあるからいいんだけど
この程度の事も検索しないのならコードなんか書けないような

533:デフォルトの名無しさん
17/03/19 15:03:19.30 lJcyTqFl.net
プログラムやる奴らって質問されるとキレながらも答えたい願望あるんだよな
そして煽って議論させるのも好き
だからわざわざ検索しないでここに投げてあげたりする

534:デフォルトの名無しさん
17/03/19 15:04:25.29 1DEeFth3.net
それにしたって餌としてはしょぼすぎる

535:デフォルトの名無しさん
17/03/19 15:10:14.91 p4p+SSjy.net
ボランティアを馬鹿にすんじゃねーぞ、コラ!

536:デフォルトの名無しさん
17/03/19 16:02:53.06 T5IZ831S.net
人力検索

537:デフォルトの名無しさん
17/03/19 16:06:30.35 z5/tCjGK.net
>>513
そういうのは初心者向けふらっとの方でやってくれw
あそこなら解決済みでもグダグダ続けたがるのがいっぱいいる

538:デフォルトの名無しさん
17/03/19 18:48:36.73 lJcyTqFl.net
>>517
でも質問してくれないと寂しいんだろ?

539:デフォルトの名無しさん
17/03/19 18:52:31.68 bcM43571.net
くだ質とかVSスレとかこの板で変なやつ増えたよな
本当にプログラムやっているのかって感じの
ここにも来てるのか

540:デフォルトの名無しさん
17/03/19 21:56:16.72 HC9gBYvT.net
マ板行けって思うスレ多いよな

541:デフォルトの名無しさん
17/03/20 01:44:39.35 SU/B8


542:MWa.net



543:デフォルトの名無しさん
17/03/20 10:11:03.85 Afs087wZ.net
>>520←コイツの馴れ合おうとするレスうざっ

544:デフォルトの名無しさん
17/03/20 12:24:29.57 y4a+UdUh.net
>>522
マ板行け

545:デフォルトの名無しさん
17/03/20 14:10:48.91 pi/vFj6F.net
>>523お前が行け

546:デフォルトの名無しさん
17/03/20 14:57:32.61 98bjORSB.net
ここは幼稚園じゃないんだが。

547:デフォルトの名無しさん
17/03/20 15:41:51.51 4DDUMBY5.net
似たようなもんよ

548:デフォルトの名無しさん
17/03/20 15:48:57.55 LcNjV7jZ.net
言い争いを見てたら幼稚園児とたいして変わらん気がする

549:デフォルトの名無しさん
17/03/20 16:00:23.53 pi/vFj6F.net

いい加減うざいって、お前らずっとスレちがい

550:デフォルトの名無しさん
17/03/21 05:52:14.36 SG0A/rfm.net
ただいま C# 7.0 利用中
ジェネリックのローカル関数まで書けるのにオーバーロードは出来ない事に気づいてがっかりモードになっている件
なぜできんOrz
あと大抵の場合キャプチャは要らないんだけどな・・・
0b1110_1011 とか二進数のリテラル地味に便利w

551:デフォルトの名無しさん
17/03/21 06:45:57.61 0zsWCCNl.net
オーバーロードはクラス外からみて合理的なインターフェイスを提供するためのもので、
内部で使うだけなら紛らわしいだけだろ
オーバーロードが欲しくなるほど長いメソッドを作ること自体が間違ってるし

552:デフォルトの名無しさん
17/03/21 14:40:35.20 SG0A/rfm.net
>>530
そんな事は無いよ、型別にスイッチするくらいならオーバーロード見通しいい

553:デフォルトの名無しさん
17/03/21 19:18:26.99 bA9h/8/p.net
似たような処理するのにメソッド2つも要らない
中で分岐させて使え、その方が保守楽だから

って言われたことある。
オマエラも結局中で分岐させてる?

554:デフォルトの名無しさん
17/03/21 19:23:26.02 qbQ1Fjub.net
>>532
時と場合による
何でもかんでも共通部分をまとめようとするのはバカだが

555:デフォルトの名無しさん
17/03/21 19:24:42.66 qRIPyX6L.net
内部の分岐とかどうでもよくね?
似たような処理のメソッドが複数出来る時点で設計からして間違っているだろうし

556:デフォルトの名無しさん
17/03/21 19:30:08.87 72kEtT2Q.net
>>530
利用するかどうかは別にしてわざわざ禁止するほどのことではないよね
ってことだろ

557:デフォルトの名無しさん
17/03/21 19:31:27.83 qbQ1Fjub.net
>>534
ループ中で分岐処理が必要な場合があるので2行目は違うと思う
速度ちょっとでも稼ぎたいと思ったらループの外で分岐させておくだろうし

558:デフォルトの名無しさん
17/03/21 19:39:30.55 RrALGwyw.net
>>532
そういうことするとすぐに分岐が増えて収集がつかなくなる
この業界は既存のコードの権力が強すぎる
一回でもはまるともう最後まで逃れられない
だから最初から妥協せずクリーンな状態を維持し続けるしかない

559:デフォルトの名無しさん
17/03/21 19:50:56.44 UqOt5XZ1.net
だったらなおのこと分岐のが楽だな
実行して見ないとなんの処理が走るか分からないコードにメリットなんて感じない
資料にも書けないしお客さんにも説明できない

560:デフォルトの名無しさん
17/03/21 20:14:47.71 7sd4gAxo.net
>>535
オーバーロードを許すと実装コストは増えるよ
オーバーロードされたメソッドのマングリングってこれまでにやったことないはず
クソ長いメソッドを定義する馬鹿のために無駄な実装コストをかけることは許容できない

561:デフォルトの名無しさん
17/03/21 23:05:57.08 UqOt5XZ1.net
マンコリング?

562:デフォルトの名無しさん
17/03/22 02:05:33.87 Y


563:DOC/IGa.net



564:デフォルトの名無しさん
17/03/22 02:11:31.86 YDOC/IGa.net
なんであんなに変更可能キャプチャが好きなんだろうな・・・
関数型言語のように一度割り当てられたら変更がないことが保証されれば見通し良いし使い勝手も良いけれど
手続き型言語にキャプチャが入ると見通し悪い事この上ないから、可能な限り使わないようにしたい気分になっている。

565:デフォルトの名無しさん
17/03/22 11:28:29.87 hks7EAC1.net
C#の糞拡張はこれからが本番ですよ。

566:デフォルトの名無しさん
17/03/22 12:58:18.38 7zaDxJTN.net
文句あるなら自分で言語作ればいいのに
何で作れない分際で文句言ってるんだか

567:デフォルトの名無しさん
17/03/22 13:01:02.87 +8Koiwe2.net
基地外発想だな

568:デフォルトの名無しさん
17/03/22 13:23:33.31 6nIA/xoV.net
フジテレビ的発想

569:デフォルトの名無しさん
17/03/22 13:50:44.67 FLtL2zh7.net
自分で作れないから文句言ってんだろ
お前も同レベルに頭わるそうだなw

570:デフォルトの名無しさん
17/03/22 14:47:13.98 T50yqk9Q.net
>>544
できらぁ!

571:デフォルトの名無しさん
17/03/22 15:44:09.05 YDOC/IGa.net
ValueTuple使ったら、変数見えないデバッグできねぇwwww
まさに作りかけwwwww

572:デフォルトの名無しさん
17/03/22 15:45:53.48 YDOC/IGa.net
>>544
みんなで同じものを使うから意味があるんだよ、一人で勝手に作って勝手にやってたら滅茶苦茶なるだろw

573:デフォルトの名無しさん
17/03/22 19:44:37.37 JvcKijZm.net
ヘジたんも言語なんか開発するのは時間の無駄だからやめなさいと言っていたしな

574:デフォルトの名無しさん
17/03/22 20:41:21.23 qEl3ed9E.net
だれよ

575:デフォルトの名無しさん
17/03/22 20:59:39.74 eP+YAd4z.net
>>549
それ、お前がメクラなだけじゃね?

576:デフォルトの名無しさん
17/03/22 21:17:25.63 YDOC/IGa.net
>>552
Delphiの開発者で、ゲイツ御大にC#のアーキテクトしてボーランドから引き抜かれた人

577:デフォルトの名無しさん
17/03/22 21:23:40.38 YDOC/IGa.net
暫く使ってみたけど、やっぱ、ラピッドリリースはよくねぇよな
どんどん品質が落ちていく
誰だよこんな糞な手段はやらした馬鹿は
Windows10もVisualStudioもボロボロやん

578:デフォルトの名無しさん
17/03/22 22:28:00.53 MyrW3Mfd.net
>>555
どんどんお前が老いていってるだけ

579:デフォルトの名無しさん
17/03/22 22:41:57.96 Qh2JSeLT.net
最近思うんだけどRazor使わずに普通のhtml+JS+REST API(.NET)の方が開発しやすくない?
Razorって本当に便利なのかな?生産性あがる?

580:デフォルトの名無しさん
17/03/23 01:12:53.78 eX8m9MWo.net
業務アプリで同じような画面を大量生産するには便利A: [1.201975 sec.]B: [2.281051 sec.]

581:デフォルトの名無しさん
17/03/23 01:47:02.34 FaFIhE+0.net
C#に限らずかもしれないけれど、invokeってフォームに限ってどうして必要なのですか?
invokeを書けばメソッドを呼び出してプロパティにアクセスできるのは分かるのですが
invokeがないと何がダメなのか内部的なことを教えていただけますか?

582:デフォルトの名無しさん
17/03/23 01:52:24.45 Un9Q+jtZ.net
>>556
心配しなくても若い子はもうWindowsも使わなければVisutalStduio何それ?状態だからw
みんなWeb系でスマホばっかりやっている。
もう、ここに残


583:っているのは年寄りだけだよw



584:デフォルトの名無しさん
17/03/23 01:56:59.96 Un9Q+jtZ.net
>>559
昔のシングルスレッド時代の遺産を引きずっているんだよ
Formは、半ばラッパーライブラリなので。
シングルスレッドの利点はデッドロックの可能性がないこと。
マルチスレッド当たり前になってしまった今だと、逆にデッドロックの元になってしまったりと困った有様だけど。
遺産の量が大きいので、全く別の物を作るのは簡単ではないだろうね。

585:デフォルトの名無しさん
17/03/23 02:00:44.79 FaFIhE+0.net
>>561
ありがとうございます
もっと詳しく知りたいのですがどう言葉で調べればよいのでしょうか?
できればネットで調べれるものがよいのですが、書籍でも平気です
英語のサイトでも平気です
なにかあれば教えていただけますか?

586:デフォルトの名無しさん
17/03/23 02:04:38.43 VjAjr2s9.net
>>559
UI関連は、UIスレッドでのみ動作することを前提に設計することで、パフォーマンスを上げてる。
マルチスレッド対応にすると排他制御等が増えてしまい、パフォーマンスが下がる。
>>561
非同期処理とか書きやすくなったから、最近は割と楽だろ。
Invokeも使う必要ないし。

587:デフォルトの名無しさん
17/03/23 02:05:51.99 Un9Q+jtZ.net
>>562
C言語から、直接Win32APIを叩いてみればわかると思うよ。
WM_XXXXとかを直接使ってGUIを動かしてみれば、古いインターフェイスの感触どんなもんか分かるかと。
年代物なので、古本屋でWin32の本でも探してみるのもいいかも。
今更みる価値あるのかって思うので、お勧めはしないけど。

588:デフォルトの名無しさん
17/03/23 02:07:28.88 Un9Q+jtZ.net
>>563
Task作った奴はバカだと思うwww
Invokeの方がまだ誰にでも分かりやすい。
継続なにそれおいしいのwww
関数型言語面白いねって感じだね

589:デフォルトの名無しさん
17/03/23 02:09:33.89 Un9Q+jtZ.net
このマルチコア時代にシングルスレッドで頑張ってパフォーマンス上げるとか
時代錯誤も甚だしいよな・・・

590:デフォルトの名無しさん
17/03/23 02:16:32.78 FaFIhE+0.net
>>563,564
新人にinvokeを教える際に困ってしまったので
浅くでも知識として知っておきたかったので助かりました
Win32からの流れなのですね、Formだけこんなに違うのはそういうことなのですね。。
時間があるときにもう少し調べてみようと思います
ありがとうございました

591:デフォルトの名無しさん
17/03/23 02:21:34.59 VjAjr2s9.net
>>565
async/awaitやIProgress<T>あるから、Taskの継続を直接使う事はあまり無いな。
間接的には使ってるわけだが。

592:デフォルトの名無しさん
17/03/23 02:21:39.46 9gkqdxMB.net
>>566
時代関係ないから
スレッドセーフにするとパフォーマンスが犠牲になるのはUIだけじゃない
BCLのクラスのインスタンスメソッドも大半はスレッドセーフじゃない

593:デフォルトの名無しさん
17/03/23 02:22:11.13 Un9Q+jtZ.net
Win32は、当時のオブジェクト指向の実現にむけての試行錯誤が見れるのは面白いかもしれない
メッセージ飛ばしたり、メール飛ばしたり、色々試行錯誤の末にC++の仮想テーブル方式にたどり着く訳だけれども
その前の段階のオブジェクト指向が見れるよw

594:デフォルトの名無しさん
17/03/23 02:23:39.71 Un9Q+jtZ.net
>>569
いつまでも凝り固まってますねwww
もうハイハイって感じですわ

595:デフォルトの名無しさん
17/03/23 02:28:42.19 Ei+8urX3.net
しかしGUIなんて所詮人間速度だし、パフォーマンスって要らないよな?
フォームに関しては最初からマルチスレッド対応でinvokeの必要無しの方が良かった気がするが。

596:デフォルトの名無しさん
17/03/23 02:30:27.90 9gkqdxMB.net
>>571
いるよね、こういう量的な進歩と質的な進歩の区別のつかない


597:z 馬鹿な奴だ



598:デフォルトの名無しさん
17/03/23 02:31:53.25 VjAjr2s9.net
何でもマルチセーフにすれば良くなるってもんでも無いのね。
排他制御のコストは大きいから、なるべくそれを無くす設計が重要。

599:デフォルトの名無しさん
17/03/23 02:32:30.61 Un9Q+jtZ.net
>>572
いやいや、それでもあった方がいいよ
マルチスレッドできっちり分散できれば、1CPU辺りの負荷が軽くなる
すると低クロックで動いて消費電力が小さい。
シングルスレッドだと、同じ負荷でも1CPUに集中するからクロックが上がってしまう。

600:デフォルトの名無しさん
17/03/23 02:35:01.08 Un9Q+jtZ.net
>>573
質的にはTaskは逆立ちして徒競走しているようなモンだなw
普通立ってに走れよ、頭オカシイんかいってなもんだね。

601:デフォルトの名無しさん
17/03/23 02:36:32.46 9gkqdxMB.net
しかし、マルチコアっていうのは苦し紛れの「苦肉の策」であってポジティブな進歩じゃないって
パソヲタレベルでも知ってる常識だと思ったけどプログラマでもそういう認識がない奴がいるんだね。
そういう奴は「人月の神話」って言葉も聞いたことないんだろうな。
生産性は作業者の投入人数に比例しないのはコンピュータも同じだよ馬鹿

602:デフォルトの名無しさん
17/03/23 02:38:13.08 Ei+8urX3.net
>>575
いやお前実は分かってないだろ。
575はinvokeを肯定しているぞ。てかお前どっち派よ?

603:デフォルトの名無しさん
17/03/23 02:40:35.49 Un9Q+jtZ.net
>>578
async / await 最新わかってる俺スゲーなヤツが死んでほしい派
技術的には、まぁあるもん使うさってなもんだ。

604:デフォルトの名無しさん
17/03/23 02:57:11.32 VjAjr2s9.net
>>576
Taskはスレッドプールを使いやすくしたもの。
スレッドプール自体は昔から使われるテクニックだし、なんでそこまで嫌うのか分からん。
Taskのおかげで非同期処理が非常に楽に扱えるようになったのに。

605:デフォルトの名無しさん
17/03/23 03:07:35.11 Un9Q+jtZ.net
>>580
以前作って滅びたATLなんかと同じだね、入門者がすぐに理解して使えない物は糞
WPFも同様の香りがするね
分からないけれどなんとなく使えているって人だらけになって理解していないから、エラー対処ができない。
そうすると、全部特定の人に負担が行く、そんなコードやライブラリは使えない。
これはマイクロソフトの象牙の塔だよ

606:デフォルトの名無しさん
17/03/23 04:45:12.92 0wLqn0eU.net
ATLがいつ滅んだんだよw

607:デフォルトの名無しさん
17/03/23 07:10:17.81 UmFjwc/F.net
昔の名残とかじゃなく、単にマルチスレッドでUI部品を扱うのが大変だということだと思うんだが
ユーザーインターフェイススレッド - Wikipedia
URLリンク(ja.wikipedia.org)
>例えば、Java の AWT では、1996年の最初の時点では、
>単純にスレッド間でデータ共有型のマルチスレッドになっていた。
>しかし、データ共有するには、ロックをかけないといけないが、
>親コンポーネントから子コンポーネントを呼んだり、
>コールバックで子から親を呼んだり、
>アプリケーションからGUIライブラリを呼んだり、
>GUIライブラリからアプリケーションをコールバックしたりと、
>双方向に呼び出すことが多く、
>異なるスレッド間で双方向に呼び合うときは、ロックの順番に注意を払う必要がある。
>これはソフトウェアが非常に複雑になる原因となってしまう。
>また、ロック順序のミスが引き起こすデッドロックは常にではなく
>たまに発生したりすることの多いバグ(時間的確率要因が関与する偶発性のあるバグ)であり、
>バグ取りが大変になるという問題があった[



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

2100日前に更新/292 KB
担当:undef