1read 100read
2013年17プログラム2: ふらっとVisual C#,C♯,C#(初心者用) Part106 (992) TOP カテ一覧 スレ一覧 2ch元 削除依頼
マルチプラットフォーム プログラミング言語 haXe (135)
ニートの俺が何か開発して食いつなぐスレ (979)
「コンパイラ・スクリプトエンジン」相談室15 (706)
サウンドプログラミング5 (793)
【Intel】OpenCV総合スレ 4画素目【画像処理】 (970)
米国国防省の標準高等言語エイダ(Ada)を語れ! (809)

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


1 :2013/09/07 〜 最終レス :2013/09/25
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問。
質問者自身なんだか意味がよく分からない質問。
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められることがあります、ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとVisual C#,C♯,C#(初心者用) Part105
http://toro.2ch.net/test/read.cgi/tech/1371948073/
■関連スレ
C#, C♯, C#相談室 Part80
http://toro.2ch.net/test/read.cgi/tech/1373037260/
■コード貼るなら↓使ってください
http://ideone.com/

2 :
XNAが終了ということを知ったんですが
いまだとirrlichtが最強なのかなと思いました
このスレの先輩にもご意見をお伺いしたいのですがこのライブラリはどうでしょうか?

3 :
>>2
ゲームなら今やUnity一強
.NETじゃないけど言語はC#だよ

4 :
Unityっすか
実はUnity使ってみたかったんですが
ぼくのPCだと重すぎて
メモリ1GB オンボード Celeron1コア なんですが先輩方はどのくらいのスペックでUnityを快適に開発しているのでしょうか?

5 :
Unityが重いならVSの最新版もまともに動かんよ

6 :
>>4
さすがに買い換えろよ
それだとVS2003で精一杯なレベルだ
UnityもVS2012も今のでっかいソフトにしては決して重くない
最新のPCなら安いノートで十分快適に動くよ

7 :
3〜4万も出せばPCを買える時代の終わりは近い

8 :
これからは1万円台か

9 :
TypeLoadException が出たのですが、どうやって直したらいいでしょうか?
アセンブリは、ちゃんとexeと同じ場所にあるので、アセンブリ(*.dll)は読み込めてると思います。
でも、たぶん型が読み込めてない(??)みたいなのですが……
教えてください


System.TypeLoadException はユーザー コードによってハンドルされませんでした。
HResult=-2146233054
Message=アセンブリ 'HogeHoge, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ab81addb3b46712a' から型 'HogeHoge.ClassA' を読み込めませんでした。
Source=MameMame.ClassB
TypeName=HogeHoge.ClassA

10 :
try{>>9}
catch(Exception e){
int n= 0;   //ここにブレークポイント設定して e の中身見ろ。解決方法が載ってる
}

11 :
メッセージ通りとしか言いようがない

12 :
こういうのは全ソースとバイナリ貼ってくれないと解決しないパターン

13 :
必要も無いのにGACに登録してて、
コンパイルのとき指定したアセンブリと
GACのアセンブリで同期が取れてないとか

14 :
こうして欲しい
DLLプロジェクトを名前変えて作り直す
厳密名その他Hogehogeの設定に近づけつつ動かす
動かなくなる設定を突き止めたら調べて正しい設定にする
ダメならダメな理由を添えてここで質問

15 :
全エレメントを列挙してscrollTopを取得したのに
0より大きい値がひとつも取れないってどうゆうこと?

16 :
俺んとこじゃBody.ScrollTopでちゃんととれてるから
ただの環境依存じゃない?

17 :
とれたよ。マジでありがとう。

18 :
現在マルチスレッド処理を行うプログラムを書こうとしています。
Form1とForm2が存在し、初めはForm1のみが表示されています。
Form1のボタンを押すとForm2が表示され、Form2では重い処理を行っています。
この際Form1ではそのまま処理を続行したいのでForm2のclassを作ることから表示するまでをThreadクラスを使って別で処理させて、そのままForm2の描画および処理を行っています。
ですがボタンのイベント内で行っているので、イベントを抜けた途端にForm2も消滅してしまいます。これを解決する方法はないのでしょうか?

19 :
Form2の表示はApplication.Runを使う必要があると思う

20 :
スレッドはSTAね

21 :
重い「処理」だけスレッドに追い出せばForm2自体はスレッド分ける必要ないだろ

22 :
別にフォームごとサブスレッドにしてもいいと思う

23 :
どう実装してるのか解らないけど、Form1のフィールドとしてForm2とスレッドの
変数を用意し、ボタンイベント内でそれぞれをインスタンス化すればいいんじゃ
ないの?
ボタンイベント内で変数を定義していないか?

24 :
何言ってるのかさっぱり意味不明な質問によく回答できるよね。
ア○な質問者よりそっちに関心するわ

25 :
>>21
そうだね
前にグレープシティのコントロールがマルチスレッドだと落ちるって情報を見かけたし、
UIは安易にマルチスレッドに頼らない方が良い

26 :
でもフォームごと別のスレッドにしないと元スレッドのUIの処理の
影響受けちゃうからなぁ。あれは嫌だなぁ。

27 :
>>24
暇なんだw
確かにForm2が全然イメージ出来ない
重い処理をForm2に押し付けたらすぐ応答なしになっちゃうし、何がしたいんだろうねw

28 :
>>26
影響受けちゃうと言うか受けないように作るべきだけど面倒だよね

29 :
C#で作ったアプリケーションを起動してみたら
アプリケーションを正しく起動できませんでした(0xc000007b)
ってエラーがでたんだけど解決方法わかります?

30 :
64bit環境で32bitアプリを起動したとか?

31 :
ワオキツネザルを無効にしてるんじゃなければ(そもそも無効にできるかどうか知らんけど)
それで問題が起こるとは思えませんが。

32 :
自分でも何を質問してるのかわからない状態に陥っていますが…
再度整理すると、
現状ではボタンのクリックイベント内に別のFormクラスを宣言させて、Show()メソッドでForm2を表示しています。
Form2で行いたいことは、Form2内のボタンを押すとファイルを読み取りファイルを編集し、終わった後にForm2を自動的に閉じる、というものです。
ですがファイルサイズが大きいので動作が重くなってしまい、呼び出したForm1が止まってしまいます。
Application.Run()を使ったら
単一スレッド上で 2 回目のメッセージ ループを開始することは有効な操作ではありません。Form.ShowDialog を使用してください。
というエラーが表示されてしまいました。

33 :
うんそうだね

34 :
>>32
>>33>>31
Application.Runはバックグラウンド実行させるメソッドの中だよ

35 :
>>32
>Form2内のボタンを押すとファイルを読み取り
この「ファイルを読み取る」のが遅いんだから、その部分だけを別スレッドにすればいい

36 :
>>32
>>35の言うとおり、そうしないとForm2がフリーズする事になる。

37 :
非同期も選択肢がだんだん増えて便利になった分、ゼロから覚える人は大変だよな。
まあデキる人ならどの道3日ぐらいでものにしちゃうのかもしれんが。

38 :
ファイル読み取りを別スレッドにわけて、その処理の最後にfinishフラグのboolをtureにし、Timerで1秒間隔で読ませて、条件を満たしていたらFormを閉じるという無理やりな処理ですが、一応目標は達成できました…
もっといい処理はないものでしょうか…?

39 :
invokeする

40 :
>>38
これ最適化で無限ループ化するやつだよね

41 :
>>38
スレッドにフォーム渡しておいて、読み込み終わったらform.Close()
↑こういうやり方すると誰かが文句いうが気にしない

42 :
処理が終わったら閉じるとか、form2って単に処理中とか
プログレスバーを表示するだけのものなのか?
だったらそれ自体不要なんじゃないのかな

43 :
その重い処理から定期的にメッセージループを回せよ。
どうせプログレスバーも更新する必要もあるんだし。

44 :
>>41
invokeでだよね
>>42
ボタンを押したらって書いてあるからファイル選択するんじゃないか?

45 :
NET4.5以降ならAsync/Awaitの出番
TaskやBackgroundWorkerでもよい

46 :
ファイル読み込みなんだからボトルネックはHDD。
いちいちスレッド使うなよw 同期とかで余計に複雑になるわw

47 :
Form2にはファイル選択とどの動作を行うかの選択のボタンやチェックボックスがついているため、Form2は必要になっています。
Invokeの使い方をまだよくわかっていなかったため使用を見送っていました。
メッセージループということは、Application.DoEvents()で良かったでしょうか。
Frameworkは4を想定していたので、それは使えませんね…

48 :
>>46
じゃどうすんだよ?w

49 :
>>48
ファイル読込ループにDoEvents()でも入れとけ。

50 :
Windows7って標準で.Net4.0がインストールされていますか?

51 :
>>47
invokeならこう
this.Invoke((MethodInvoker)delegate
{
this.Close();
});
DoEventsだとForm1の反応も悪くなる

52 :
>>49
ファイル読み込みなんだからボトルネックはHDD。
だからスレッドなんて使わずDoEventsにしろ。
全く意味が分かりませんねぇ┐(´〜`)┌ ヤレヤレ

53 :
>>52
コード書かない奴には理解できないよ。

54 :
コード書いてるけど分からんわ

55 :
ややこしそうだからスルーで

56 :
同期考えないでスレッド生成しまくってるタイプか。
不定期にデッドロックしてもマイクロソフトだからですとか言いそう。
そういうプログラマを何人も見てきた。

57 :
DoEventを素人にすすめる低能は死んでくれる?

58 :
素人にマルチスレッド薦めるなw >>52 みたいなアホが大量生産されるw

59 :
doeventsよりスレッドのほうがわかりやすいけど

60 :
同期考えないからだろwww
過去にハイパースレッドとか出始めたときどんだけフリーズするアプリがあったんだよw

61 :
どんだけあったの?w

62 :
さすがに初心者にマルチスレッドはないな。
単独スレ立つぐらいなのに。CPUの知識は必須。
マルチスレッドプログラミング相談室 その9
http://toro.2ch.net/test/read.cgi/tech/1339691517/

63 :
CPUの知識てw

64 :
>>50
されてません
http://www.atmarkit.co.jp/ait/articles/1211/16/news093.html

65 :
CPUの知識ワロタ。どうせおまえもCPUの知識なんてカスほどしかねーだろ

66 :
原理から理解する必要があるって言ってた奴とかぶるものがあるなw

67 :
原理主義者だな
テログラマーか?

68 :
いくつ抽象化レイヤーをぶち抜いたらCPUの話になるんだよ

69 :
>>63
落ち着け。初心者だと言ってるようなものだぞ。
さて、この勘違いした初心者をスルーすべきか相手にすべきかだな。

おれはパス。

70 :
>>68
ほう。なぜこれが同期できてないかCPUレベルの話なしで初心者に説明してくれ。
これは典型的な初心者が書く馬鹿コードだから。既に稼動してるシステムで何度も見てきた。
Form1とかで
bool lock = false
int data = 0;
別スレッドで
if(!lock){
lock = true;
data処理
lock = false;
}

71 :
確かにスレッド案はまだ停止用フラグの実装とかやる事あるけど、
今回は独立性高いし勉強用としては良いと思う。

72 :
>>70
そもそも待機するコードになってないから

73 :
釣りでなければ、どこにCPUレベルの話があるのかわからんが
もしかして、スレッドの話=CPUの話だとでも思ってるのか

74 :
>>72
正しいコードプリーズ。

75 :
volatileが必要とでも言いたいの?
そもそも説明を要求された理由が分からない

76 :
このスレのあまりのレベルの低さに同情する。 >>70

77 :
CPUの知識がどのレベルなのか分からないけど
レジスター、スタック、ヒープの構造と
各スレッドのコンテキストに割り当てられるリソースの
関係については知ってる必要があるし、それはCPUの
知識と言えるかもしれない

78 :
ロックしたいなら>>70なソースは書くわけないし。どう見ても>>70=>>76だし。自演までレベル低くて同情するよ

79 :
ロックってmonitor使うんじゃないの?騙された?

80 :
>>78
正しいコードプリーズ。

81 :
アセンブラのプログラマーの方ですか?
ここはC#スレですよ

82 :
初心者ならそれこそBackgroundWorkerだろ
同期やロックはBackgroundWorkerイベントで
隠蔽されて安全に使える。

83 :
精々lockやReaderWriterLockSlimで終わる話
なぜにCPUまで持ち出さないといけないのか

84 :
初心者にはマルチスレッドは無理。
知ったかに説明しても逆ギレするだけ。

85 :
>>80
ほらよ
ttp://codezine.jp/article/detail/139 の待機ハンドル
if(!lock)なんてやっても一瞬で素通り。while(1)かましたらずっと判定処理になるだろ
そんな糞コード書くなよ

86 :
>>85
while(1)にしても同期できないよ、素人。

87 :
while(true){
if(!lock){
lock = true;
data処理
lock = false;
}
}
これなら同期できると思ってる馬鹿がいる件について

88 :
>>86
だからそんなの使わないって書いてるだろ。日本語ぐらい読めるようになれ

89 :
>>70は会社員なのかなんなのかしらんが
既に稼動してるシステムでこのレベルのコードでマルチスレッド扱うプログラマがいるの?
ちょっといくらなんでも信じられん

90 :
>>89
このスレで誰も答えを言えないのが答えさ。

91 :
>>79,81,82,85に答えがあるのにそれを全部無視する>>70

92 :
>>85は知ってるが>>70のコード断片から導くのは困難だわ
CPUのキャッシュとメモリの同期の話とかかと思いきや何だよ考えて損したw

93 :
>>91
その中で一つでも同期できない理由を説明したものがあるのか。
ないじゃんwww

94 :
素直にマルチスレッドなんにも分からないから教えてください、って言えよ

95 :
>>93
>>72

96 :
>>95
while(true){
if(!lock){
lock = true;
data処理
lock = false;
break;
}
}
これで同期できる?

97 :
はい解散〜
解散解散〜

98 :
>>96
それで同期出来るなんて誰も言ってないしw
もう引き下がってくれよw
めんどくせーよー

99 :
>>96
できない>>85にあるだろ。こんなイメージ
while(true)
{
  manualEvent.WaitOne();
 //処理
}

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【QBASIC互換!?】FreeBasic【GPL】 (530)
PureBasic (175)
【えっ】Perlに未来はあるのか?【終わり?】 (857)
アセンブラ初心者スレッド (439)
【統計分析】機械学習・データマイニング3 (308)
pythonがこの先生きのこるには (753)
--log9.info------------------
ヴァイブ ・ ヴァーチュオーゾ (276)
☆★☆ Jazz-HipHop ☆★☆ (133)
‡ フルートの名手・名盤 ‡ (741)
濃い〜ブルーズを感じさせるジャズ (521)
定禅寺ストリートジャズフェスティバル (667)
♪宇都宮ってジャズの町??♪ (427)
     スコット ヘンダーソン (475)
ソフィー・ミルマン☆Sophie Milman (253)
世間的には評価高いけど自分にはなんかわからない盤 (589)
Steve Kuhn に胸キューン (271)
明らかな嘘をついて下さいinジャズ板 (825)
【超絶】ぱくよんせ Part 2【技巧】 (158)
ピアノソロ、トリオのバラード集のお薦め教えて (512)
【CHICK COREA】チック・コリア総合6【RTF】 (139)
ニュウヨークに音楽留学したい!! (872)
【リッチー・バイラーク】を語っておくれよ。 (126)
--log55.com------------------
【TOYOTA】トヨタ ブレイド 54【BLADE】
モビリオ・モビリオスパイク統一スレ 44
【三菱】コルトRA・Ver.R/Part-45
【日産】2代目ノート Part40【E12 NOTE】
アルファ 147 part52
ABARTH124spider part7
【スズキ】 3代目スイフト Swift Part74 【ZC72S】
■■■レクサス LEXUS RC350/300h/200t 8 ■■■