ふらっとC#,C♯,C#(初心者用) Part66
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/11/27(土) 19:37:27「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとC#,C♯,C#(初心者用) Part65
http://hibari.2ch.net/test/read.cgi/tech/1289307450/
■関連スレ
C#, C♯, C#相談室 Part62
http://hibari.2ch.net/test/read.cgi/tech/1284775031/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0002デフォルトの名無しさん
2010/11/27(土) 20:41:20http://hibari.2ch.net/test/read.cgi/tech/1289733048/
0003デフォルトの名無しさん
2010/11/27(土) 22:09:29乙
0004デフォルトの名無しさん
2010/11/28(日) 00:37:07Hello2 World
0005デフォルトの名無しさん
2010/11/28(日) 01:13:100006デフォルトの名無しさん
2010/11/28(日) 01:23:160007デフォルトの名無しさん
2010/11/28(日) 01:25:030008デフォルトの名無しさん
2010/11/28(日) 01:26:40URLにアクセスしてhtmlだけダウンロードしてくれば
その中にテキストデータで埋もれてるからそれを抜き出せばいい
0009デフォルトの名無しさん
2010/11/28(日) 02:06:260010デフォルトの名無しさん
2010/11/28(日) 02:08:00慣性スクロールのやり方教えてください。
0011デフォルトの名無しさん
2010/11/28(日) 02:41:47windowsってそういうのを作りこむには向いてないかもねw
0012デフォルトの名無しさん
2010/11/28(日) 03:12:590013デフォルトの名無しさん
2010/11/28(日) 08:46:460014デフォルトの名無しさん
2010/11/28(日) 08:52:350015デフォルトの名無しさん
2010/11/28(日) 10:12:28http://ideone.com/0heyZ
グラフのメモリは自分で作ってくれ
0016デフォルトの名無しさん
2010/11/28(日) 10:18:21以下の事は↓のスレで
難しい質問
GUI
C#以外の言語
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/l50
0017デフォルトの名無しさん
2010/11/28(日) 10:25:200018デフォルトの名無しさん
2010/11/28(日) 10:25:280019デフォルトの名無しさん
2010/11/28(日) 10:36:300020デフォルトの名無しさん
2010/11/28(日) 10:51:37わけわからん誘導すんなよ
0021デフォルトの名無しさん
2010/11/28(日) 11:13:45とは、質問者にではなく、答える側に言いたい。
0022デフォルトの名無しさん
2010/11/28(日) 11:45:320023デフォルトの名無しさん
2010/11/28(日) 12:22:400024デフォルトの名無しさん
2010/11/28(日) 12:54:300025デフォルトの名無しさん
2010/11/28(日) 12:55:45板:vip
タイトル:ニコニコ生放送あらそうぜ
内容:
【300人記念】リアトモがフリーホラーゲームをやります【ホラーゲーム】
http://live.nicovideo.jp/watch/lv3336962
0026デフォルトの名無しさん
2010/11/28(日) 15:18:10なのか区別付かないこともあるだろ。GUIも多少はここでいいんじゃない?
0027デフォルトの名無しさん
2010/11/28(日) 15:29:34フレームワークなしじゃ大したもの作れないし、
C# はフレームワークに乗っかった機能多いし、
0028デフォルトの名無しさん
2010/11/28(日) 16:19:11>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
>ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
>ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
これが全て、GUIの質問もしていい。
0029デフォルトの名無しさん
2010/11/28(日) 16:52:180030デフォルトの名無しさん
2010/11/28(日) 17:04:11自称上級者に「お前は初心者じゃねえ」と叱られたら相談室へ
0031デフォルトの名無しさん
2010/11/28(日) 17:05:090032デフォルトの名無しさん
2010/11/28(日) 17:25:28B = 小規模なアプリケーションを完成させたことがある
C = 大規模なアプリケーション開発に携わったことがある
D = C#マニア
| A | B | C | D |
-------------------------
初心者/質問 | O | O | X | X |
初心者/回答 | X | O | O | O |
相談室/質問 | X | O | O | O |
相談室/回答 | X | X | O | O |
こんなとこか?
0033デフォルトの名無しさん
2010/11/28(日) 17:34:080034デフォルトの名無しさん
2010/11/28(日) 18:09:09神様ありがとうございますた
0035デフォルトの名無しさん
2010/11/28(日) 18:17:47図々しいお願いですが、グラフのメモリも
0036デフォルトの名無しさん
2010/11/28(日) 18:22:040037デフォルトの名無しさん
2010/11/28(日) 18:27:430038デフォルトの名無しさん
2010/11/28(日) 18:32:010039デフォルトの名無しさん
2010/11/28(日) 18:33:040040デフォルトの名無しさん
2010/11/28(日) 18:34:580041デフォルトの名無しさん
2010/11/28(日) 18:45:380042デフォルトの名無しさん
2010/11/28(日) 18:46:46ジンバブエドルで
0043デフォルトの名無しさん
2010/11/28(日) 18:50:450044デフォルトの名無しさん
2010/11/28(日) 19:26:370045デフォルトの名無しさん
2010/11/28(日) 19:48:48http://ideone.com/7JfPc
ほれ
報酬は5000万ジンバブエ・ドルだから
現在のレートだと日本円で1000万円だな
ちゃんと払えよ
http://ja.exchange-rates.org/converter/ZWD/JPY/50000000/Y
004645
2010/11/28(日) 19:58:00// スケールを計算
float xscale = r.Width / (float)Math.Log10(xmax);
float yscale = r.Height / (float)Math.Log10(ymax);
0047デフォルトの名無しさん
2010/11/28(日) 20:41:580048デフォルトの名無しさん
2010/11/28(日) 20:41:58まあグラフだから実用上問題ないはずだけど、
本当はfloatにキャストするのは最後にした方がいいような
0049デフォルトの名無しさん
2010/11/28(日) 20:50:00バグではないよ、どっちでも動作変わんないし
>>48
floatってそんな精度悪かったっけ?
0050デフォルトの名無しさん
2010/11/28(日) 20:52:54使う範囲によるけどゲームのように速度重視じゃない場合は64bitになってるでしょ
C#も一部は明示的にfloat使うところもあるけど基本はdoubleだし
0051デフォルトの名無しさん
2010/11/28(日) 21:07:18さっすが、仕事速いっすねえ
1000円しか持ってないけど、将来あなたが主任級まで昇進できることを俺が保証します。
0052デフォルトの名無しさん
2010/11/28(日) 21:16:15http://ideone.com/J7yhD
>>50 いまどきのCPUならどっちでも速度は変わんないと思うけどね
>>51 100円残してやるから900円よこせ
0053デフォルトの名無しさん
2010/11/28(日) 21:16:520054デフォルトの名無しさん
2010/11/28(日) 21:29:47(#^ω^)ピキピキ
0055デフォルトの名無しさん
2010/11/28(日) 21:30:420056デフォルトの名無しさん
2010/11/28(日) 22:22:33static class Program {
static void Main() {
Form1 form=new Form1()
form.Show();
Thread t=new Thread(new ThreadStart(form.run));
t.Start();
t.Join(); } }
public class Form1:Form {
public Form1(){}
public run() {
this.Show()
while(this.Created) { Application.DoEvents(); }
}
このコードを実行すると、Application.DoEvents()があるのに、どうしてWindowsの
メッセージ処理をしてくれないのでしょうか?
0057デフォルトの名無しさん
2010/11/28(日) 22:24:180058デフォルトの名無しさん
2010/11/28(日) 22:26:380059デフォルトの名無しさん
2010/11/28(日) 22:37:16ちなみにform.Show()を
runメソッド内に置くとWindowsのメッセージ処理をしてくれて
フォーム右上の「x」でフォームが閉じます。
0060デフォルトの名無しさん
2010/11/28(日) 22:38:51this.Show()は無しです。
0061デフォルトの名無しさん
2010/11/28(日) 22:40:16XNAとかゲームAPIを使わないゲームループならこの辺のソースみたら?
http://cs2ch.blog123.fc2.com/blog-entry-82.html
0062デフォルトの名無しさん
2010/11/28(日) 22:42:06Form1のメッセージループがメインスレッドで動いているのに、別スレッドでDoEvents
するって・・・。お前にはマルチスレッドは10年早い。
0063デフォルトの名無しさん
2010/11/28(日) 22:46:090064デフォルトの名無しさん
2010/11/28(日) 22:50:26[STAThread]
static void Main() {
Form1 form = new Form1();
form.Show();
while (form.IsHandleCreated) {
Application.DoEvents();
}
}
0065デフォルトの名無しさん
2010/11/28(日) 22:53:570066デフォルトの名無しさん
2010/11/28(日) 22:55:31「別スレッドでDoEventsするって・・・」
ってどういうことでしょうか?
0067デフォルトの名無しさん
2010/11/28(日) 23:03:05↓これなら気が済むか?
static class Program{
static void Main() {
var form = new Form1();
new Thread(form.Run).Start(); // background thread.
Application.Run(form); // または>>64の用にDoEventsでループする
}
}
class Form1:Form{
public void Run(){
while( this.Created ) ;
}
bool Created;
}
0068デフォルトの名無しさん
2010/11/28(日) 23:03:110069デフォルトの名無しさん
2010/11/28(日) 23:07:080070デフォルトの名無しさん
2010/11/28(日) 23:08:51様に書くに決まってんだろ。
0071デフォルトの名無しさん
2010/11/28(日) 23:11:50ありがとうございました。
マルチスレッドはかなり奥が深いですね。
0072デフォルトの名無しさん
2010/11/28(日) 23:13:27DoEvents使ってた経緯があったりするから困り者
0073デフォルトの名無しさん
2010/11/28(日) 23:15:16ttp://d.hatena.ne.jp/yukinami/20090310
このやりとりでマルチスレッドの奥深さがわかるなんてとんでもない天才だな
0074デフォルトの名無しさん
2010/11/28(日) 23:20:33どれくらい奥深いかは、分かりませんが、
質問に答えてくださったかたへの礼儀として
一文を書いた次第です。
0075デフォルトの名無しさん
2010/11/28(日) 23:22:56わざわざスレッドやバックグラウンドワーカー作るよりも
DoEvents使っちゃうほうがコストが低いと思うがそれもだめなのか?
0076デフォルトの名無しさん
2010/11/28(日) 23:25:100077デフォルトの名無しさん
2010/11/28(日) 23:26:10すっごく
0078デフォルトの名無しさん
2010/11/28(日) 23:35:490079デフォルトの名無しさん
2010/11/28(日) 23:43:09Application.run(form)
の代わりにform.show()はなぜ駄目なの?
0080デフォルトの名無しさん
2010/11/28(日) 23:46:45form.show()じゃそのままMainメソッド終了しちゃう
0081デフォルトの名無しさん
2010/11/28(日) 23:47:00DoEventsでどんなイベントが実行されても安全なことが保証できてるなら構わないぞ。
イベントハンドラ中にFormがDisposeされてもいいんだな?
0082デフォルトの名無しさん
2010/11/28(日) 23:51:10アプリケーション全体ではどこかでメッセージ処理をしなくてはいけない
メッセージループの開始をしてくれるのがApplication.Run()
だから、フォームが1つならApplication.Run() にするのがもっとも簡単
逆にメインフォームとは別のサブフォームの作成なら、すでにメインフォームで
メッセージ処理をしてるはずなので、Application.Run()ではなく、Show() を使う
0083デフォルトの名無しさん
2010/11/28(日) 23:58:57おらず、62の意見は間違っているんでは??
0084デフォルトの名無しさん
2010/11/28(日) 23:59:56ディスポーズされた後にコントロール操作したら例外発生するのかと思ったけどそんなことはなかった
0085デフォルトの名無しさん
2010/11/29(月) 00:04:43while(this.Created) { Application.DoEvents(); }
というのがメッセージループ(≒Application.Run)に相当するんじゃないの
まあ、うまく動作してないわけだけど
0086デフォルトの名無しさん
2010/11/29(月) 00:05:570087デフォルトの名無しさん
2010/11/29(月) 00:06:460088デフォルトの名無しさん
2010/11/29(月) 00:08:45メインスレッドでShowしてるでしょ
Application.Runは手っ取り早いメッセージループ開始方法ではあるが
方法はそれだけではない
0089デフォルトの名無しさん
2010/11/29(月) 00:11:42009062
2010/11/29(月) 00:13:32ちょっと間違えた。メインはJoinしているからメッセージループは実行されていない。
でもnewするスレッドとShowするスレッドとメッセージ処理するスレッドは同じでなければならない。
0091デフォルトの名無しさん
2010/11/29(月) 01:11:33でもshowした後はメッセージ処理しなきゃいけないから
Application.Runやwhile(this.Created) { Application.DoEvents(); } で
メッセージ処理をループさせなきゃいけない。
で、メッセージはshowしたスレッドで処理されるから
>Form1のメッセージループがメインスレッドで動いているのに
はこれからメッセージループが走るという意味ではまあそんなに外れてはいない。
で、DoEventsは現在のスレッドでshowされたメッセージを処理する命令だから、
new Thread(new ThreadStart(form.run))で新しく作ったスレッドで実行しても意味がないってことだろ。
まあ、それ以前に新しくスレッド作った直後にjoinするとか一体何をしたいんだと小一時間問い詰めたい訳だが
ところでnewするスレッドって関係あるの?
0092デフォルトの名無しさん
2010/11/29(月) 11:34:09なにが最適でしょう?
silverlightやらWPFやらブラウザ系はいっぱいあってメリットデメリットがわかりません
0093デフォルトの名無しさん
2010/11/29(月) 12:28:45普通のブラウザゲームを作るならsilverlightのほうがお手軽だろうな
ただゲームを作るなら素直にFlash勉強したほうがサンプルとかも豊富だし楽そうだが
0094デフォルトの名無しさん
2010/11/29(月) 13:04:400095デフォルトの名無しさん
2010/11/29(月) 13:07:30ソフトウェアレンダリングのエンジンならあるけど当然性能は全然出ない。
WPFはネイティブの3Dが使えるけど、ウィンドウ枠がブラウザか独立ウィンドウかの違いくらいで
全くブラウザ上で動かす意味がない。
あとはJavaアプレットも3Dいけるけど今時流行らないよね
0096デフォルトの名無しさん
2010/11/29(月) 13:17:330097デフォルトの名無しさん
2010/11/29(月) 13:30:07ソフトウェアレンダリングを使ったお遊びでお茶を濁してたり
標準と謳いながらネイティブのプラグイン使って騙してたりするレベル
0098デフォルトの名無しさん
2010/11/29(月) 16:14:32//main部分
My[] my = new My[]
{
new My {
Str1 = "あいうえお",Str2 = "かきくけこ",Str3 = "さしすせそ"
}
new My{
Str1="あ",Str2="い",Str3="う"
}
new My{
Str1="はあ",Str2="ひい",Str3="ふう"
}
}
class My
{
public String Str1 { get; set; }
public String Str2 { get; set; }
public String Str3 { get; set; }
}
どこが間違ってるの?
0099デフォルトの名無しさん
2010/11/29(月) 16:15:570100デフォルトの名無しさん
2010/11/29(月) 16:40:50>動かない
ほんとに動かないであってるの?コンパイルエラーってことはない?
0101デフォルトの名無しさん
2010/11/29(月) 17:29:50■ このスレッドは過去ログ倉庫に格納されています