VB.NET質問スレ (Part24)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/12/13(木) 10:03:48VB.NET質問スレ
http://pc11.2ch.net/test/read.cgi/tech/1189038267/
(Partがありませんが、23です。)
テンプレは2〜5くらいまでの間にある予定
0159デフォルトの名無しさん
2007/12/24(月) 19:07:12きっちり実証したわけじゃないけど、高くなるとしたらそのメカニズムがよくわからないよ。
0160デフォルトの名無しさん
2007/12/24(月) 19:10:04後ろの文が意味分からん。
マルチコアでマルチスレッドでの処理能力が向上するのは
なんていうか、当たり前すぎるっていうか、最初からそれも目的にした技術なんだから。
改めて実験するまでもなく、実証例はいくらでもあるだろ?
0161デフォルトの名無しさん
2007/12/24(月) 19:10:500162デフォルトの名無しさん
2007/12/24(月) 19:11:510163デフォルトの名無しさん
2007/12/24(月) 19:15:24マルチコア上では複数スレッドが本当に同時に処理できるんだから
トータルの処理能力が向上するのは当たり前としか。
どこに疑問を感じてるんだ??
0164デフォルトの名無しさん
2007/12/24(月) 19:17:13解説記事はたことあるけど実証例は見たことないな。
その解説とやらも、>>132式の、書いてる奴がマルチタスクのしくみを
根本的にわかってないとしか思えないようなのばっかり
0165デフォルトの名無しさん
2007/12/24(月) 19:18:53だからそれが素朴すぎるって言うんだよw
コアがスレッドに専属するようなモデルを無意識で想定してるんだろうけど
そんなモデルは全然間違ってるよ。
0166デフォルトの名無しさん
2007/12/24(月) 19:27:58ある瞬間ではおおよそそうなってるだろうがよ。
だから大枠ではそうなってるってわざわざ書いたのに。
お前はスレッドとコアが直結してないからって、
いきなりマルチコアでも性能は向上しないって結論付けてるのか?
直結してないからって複数スレッドが同時に実行されないってことにはならんだろ?
0167デフォルトの名無しさん
2007/12/24(月) 19:32:38物事をゼロから考える訓練が出来てない人なのかなあ。。
なにか「同時」ということに意味があるように思ってるようだが、
物理的に同時だったら効率が上がるの?何故?
結論から言えばそんなことはないんだよ。
最初から言ってるように、コンテクストの切り替えによるロスを減らせるかどうか、
それだけが問題なの。
そんなの大して(もちろんゼロではない)減るわけないじゃん。
コアが二倍や四倍になった程度で。
0168デフォルトの名無しさん
2007/12/24(月) 19:33:540169デフォルトの名無しさん
2007/12/24(月) 19:35:34OSは優先度に従ってスレッドにCPUを割り当てる。
複数スレッドがあれば基本的にはそれぞれに空いてるCPUを割り当てる。
マルチコアでは割り当てられるプロセッサが複数あるから
複数スレッドがあれば基本的には複数スレッドがそれぞれのコアで
同時に実行される。
スレッドへのCPUの割り当ては短時間で何度も切り替えられるが、
全体の時間で見たら、ほぼコア数のスレッドが同時処理される。
そういうコードになってたら、だが。
これ以上何が気に入らん?
0170デフォルトの名無しさん
2007/12/24(月) 19:43:19んなのは当たり前だが、マルチコアとマルチスレッドの話で
そんな話をしだすとは予想外すぎて分からんよ。
っていうか、そんなことは分かってる前提で、全体の処理能力を向上させりために
マルチスレッドを使うって話なのは、もう最初から大前提だろ。
まあそういう話だと受け取っても、マルチスレッド化で処理時間が半分ってのが
納得いかないってはっきり言ってるから、そもそもなにも分かってない気がするが。
0171デフォルトの名無しさん
2007/12/24(月) 19:54:420172デフォルトの名無しさん
2007/12/24(月) 19:55:26なんでコンテキスト切り替えだけが問題って話になってんだ?
コンテキスト切り替えの効率が重要なのは分かるが、
複数スレッドが同時に処理できるってことが最重要じゃないのどう考えても。
シングルコアじゃひとつのスレッドしか物理的に同時実行できない。
マルチコアならコア数分同時実行できる。
複数スレッドのコードならコア数分のスレッドはコンテキスト切り替えなしで実行出来るし
同時実行してるんだからこなしてる処理量もコア数倍になってる。
まあこれは理想的な場合だが、大枠ではこうだ。
一体これ以上何が疑問なんだ。
0173デフォルトの名無しさん
2007/12/24(月) 19:57:030174デフォルトの名無しさん
2007/12/24(月) 20:02:19ちょっと上のでは曖昧すぎるかもしれませんので細かく言うと、
VB上でWindowsのショートカットコマンド、CTRL+AやCTRL+Cを使うにはどうすればいいのでしょうか?
0175デフォルトの名無しさん
2007/12/24(月) 20:06:53sendkeys使えばいいじゃん。
それで満足できないならWin32APIで。
0176デフォルトの名無しさん
2007/12/24(月) 20:10:55そのまま消えてしまう奴をよく見るようになった気がする…
0177デフォルトの名無しさん
2007/12/24(月) 20:16:01それでいけるんですか・・・キー単体しか認識しないものだと思ってましたorz
0178デフォルトの名無しさん
2007/12/24(月) 20:34:590179デフォルトの名無しさん
2007/12/24(月) 20:47:170180デフォルトの名無しさん
2007/12/24(月) 21:51:210181デフォルトの名無しさん
2007/12/24(月) 23:44:37そのトップに出てくる本、糞だったなぁ。
2002のコードを2005にアップグレードしただけだったし。
0182デフォルトの名無しさん
2007/12/24(月) 23:46:280183デフォルトの名無しさん
2007/12/25(火) 00:10:54こんな奴がプログラム云々
頭悪いみたいだね云々
知能が低い云々
鶏頭云々
病的云々
馬鹿云々
こういうこと書く奴がアホだったっつう
マンガみたいな展開大杉
0184デフォルトの名無しさん
2007/12/25(火) 00:38:53自分の言葉を自分に適用できない。
これ馬鹿の顕著な特徴だから徹底的に頭に叩き込んだ方がいいよ。
まあそれができないから「馬鹿」なんだろうけどさw
0185デフォルトの名無しさん
2007/12/25(火) 00:48:37しかし、じゃあそう呼ばれた人間は実際馬鹿なこと言ってないのかよ。
それも繰り返し注意を促された後で
0186デフォルトの名無しさん
2007/12/25(火) 02:27:300189デフォルトの名無しさん
2007/12/25(火) 02:40:31言ってるやつがアホだったっことには変わりないな。
0190デフォルトの名無しさん
2007/12/25(火) 02:46:280191デフォルトの名無しさん
2007/12/25(火) 08:37:06リソースの競合とかデッドロックとかマルチタスク処理によるコンテキストの切り替えとかアトミック操作とか,
実行時には様々な障害が発生するので,その辺をOSが色々やってくれる.
そんなわけで単純に「2つ処理するハードウェアつけたら2倍になるぉ(^ω^」なんて誰にもいえなくて,
そんなこと言ってたらそれはバカ丸出し.
OSを解さないで,自力でソフトウェアをチューニングしてやっとかそこそこハードウェアの性能を引き出せるわけだから,
安っちぃコンパイラで(しかも仮想マシン)吐き出したコードを実行して,シングルコアとマルチコアでユーザが体感できるような性能差が出たらラッキーくらい.
それよかハードディスクの性能をよくするとか,マウスの精度を上げるとか,描画を早くするとかに専念した方がいいじゃろな.
アプリケーションプログラマからすると.
0192デフォルトの名無しさん
2007/12/25(火) 08:43:46間違ってるよ
0193デフォルトの名無しさん
2007/12/25(火) 08:58:07こいつ恣意的に話しずらしてるよな明らかに。
笑わすなっつの。
無条件に2倍になるとか、だれもそんなこと言ってないし。
0194デフォルトの名無しさん
2007/12/25(火) 08:58:43>安っちぃコンパイラで(しかも仮想マシン)吐き出したコードを実行して,シングルコアとマルチコアでユーザが体感できるような性能差が出たらラッキーくらい.
あふぉか。
0195デフォルトの名無しさん
2007/12/25(火) 09:01:26文章の節々から怪しさがにじみ出てるぞ。
0196デフォルトの名無しさん
2007/12/25(火) 09:05:01わかりにくいったらありゃしない。
0197デフォルトの名無しさん
2007/12/25(火) 09:13:32これからプログラミングやるならVB.NETからやるのはやめとけ
.NETならVC#、ネイティブならVC++を勧める
0198デフォルトの名無しさん
2007/12/25(火) 09:23:45マルチコアマシンでも、マルチスレッド化してもパフォーマンスはアップしません。
アップする理由がありません。
アップしてる記事とかあるけど、何にも理解してないやつがでたらめ書いてるんだよ。
って言いたかったってことでおk?
0199デフォルトの名無しさん
2007/12/25(火) 09:37:330200デフォルトの名無しさん
2007/12/25(火) 09:43:26>>164
0201デフォルトの名無しさん
2007/12/25(火) 10:55:02それとも話をずらして誤魔化してるだけなの?
0202デフォルトの名無しさん
2007/12/25(火) 11:01:01いいえ
0203デフォルトの名無しさん
2007/12/25(火) 11:07:36ところでパラレルライブラリっていつ出るの?
0204デフォルトの名無しさん
2007/12/25(火) 12:44:22変更のあった列はどうやって取得するのでしょうか
0205デフォルトの名無しさん
2007/12/25(火) 13:20:22現在、Office2007のアドインをVB2008で開発しようとしています。
実装したい機能としては、従来のメニュバーと、削除されてしまった「スキャナまたはカメラから」の図の挿入です。
メニューバーのほうは方法がわかり、めどが立ったのですが、「スキャナまたはカメラから」のほうが難航しています。
この機能自体はクリップオーガナイザ(MSTORE.exe)に実装されているので、
・そのダイアログをWord、PowerPointなどのOfficeアプリケーションから一発で呼び出す
・実行結果をオーガナイザのコレクションに追加して、そのファイルをOffice側に張り付ける
ということができれば理想的です。
このようなことは可能でしょうか?
VSTOのドキュメントとは格闘したのですが、Officeアプリケーション自体からこの機能がなくなっているせいか、2007では実装方法がわかりませんでした。
0206デフォルトの名無しさん
2007/12/25(火) 13:27:010207デフォルトの名無しさん
2007/12/25(火) 15:09:15Win32API使って自分でやった方が早くね?
0208デフォルトの名無しさん
2007/12/25(火) 15:25:05可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
0209デフォルトの名無しさん
2007/12/25(火) 15:31:39現在、Labelコントロールを継承したコントロールを作成しています。
その継承コントロールにて、AutoSizeプロパティをインスタンス生成時にFalseにするようにしているのですが、
フォームに貼り付けた時点でAutoSize=trueがフォームのInitializeComponentメソッドに自動的に書かれてしまい、意味がありませんでした。
デフォルトでAutoSize=falseにしたい場合は、どのようにすればよろしいでしょうか?
どなたかご教示宜しくお願いします。
0210209
2007/12/25(火) 15:56:35要はInitializeComponentでAutoSize=Trueが自動で書かれてしまわないようにできれば…
無理でしょうか(´・ω・`)
0211デフォルトの名無しさん
2007/12/25(火) 16:30:34可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
0212デフォルトの名無しさん
2007/12/25(火) 16:30:43可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
0213デフォルトの名無しさん
2007/12/25(火) 17:51:33フォームデザイナで「継承したクラスのAutoSizeプロパティ」がTrueになっているんでないかな?
0214デフォルトの名無しさん
2007/12/25(火) 19:05:32あるあるw
とりあえずこれで解決できるみたいだよ。
完全に問題がないかどうかは確認してないが
Public Class LabelEx
Inherits Label
<DefaultValue(False)> _
Public Overrides Property AutoSize() As Boolean
Get
Return MyBase.AutoSize
End Get
Set(ByVal value As Boolean)
Static is1st As Boolean = True
If DesignMode AndAlso is1st Then
MyBase.AutoSize = False
is1st = False
Else
MyBase.AutoSize = value
End If
End Set
End Property
End Class
0215デフォルトの名無しさん
2007/12/25(火) 22:57:53それを知ってどうしたいんだ?
0216デフォルトの名無しさん
2007/12/25(火) 23:04:20お前こそそれ知ってどうしたいんだよ。
しかし、なんで馬鹿ってえのはこう自分を棚上げして平気なんざんしょうかw
0217デフォルトの名無しさん
2007/12/25(火) 23:13:25列、ってのは想像が付かないからなー。
なんつーか、特異な要求の理由が知りたいってところ?
0218デフォルトの名無しさん
2007/12/25(火) 23:16:30自分のことをよくぞ言ったもんだ
215じゃねーけど知ったところで意味ねーからだろーが
その変更された値を取得するには結局変更された行(=レコード)を取得しなきゃならんのだし
0220デフォルトの名無しさん
2007/12/26(水) 13:04:04使用ソフトVB2005です。
わからないことは
テキストボックスで入力した文字をボタン1を押すとtxtファイルに保存して、
ボタン2を押すとテキストボックスに呼び出すこと。(テキストボックスは複数)
StremReder、StremWriterを使うことはわかって、保存まではたどり着きました。
ですが、呼び出しがわかりません。
どなたか、教えてもらえませんか?
0221デフォルトの名無しさん
2007/12/26(水) 13:11:52http://dobon.net/vb/dotnet/file/readfile.html
この辺読んだらわかるかと。
上記URLのVBサンプルの
Console.WriteLine(s)
てなっているところを例えば
TextBox1.text = s
ってすればTextBox1にファイルの内容が表示されるよ。
0222デフォルトの名無しさん
2007/12/26(水) 13:43:34どうもありがとうございます。
確かにできました。
ですが、1行で保存しているものを分割して表示しなければ
いけないので、すべてまとまって出てしまいます。
これは、どうすればいいかわかる方いましたら教えてください。
0223デフォルトの名無しさん
2007/12/26(水) 13:52:14それは一行に全てまとめて保存していて,そのまま表示したってことでおk?
適当に分割すれば
0224デフォルトの名無しさん
2007/12/26(水) 13:58:18分割・・・それもアリですが
こんな感じになって保存されてるのをtextboxに分けて入れたいんですよ。
a,s,df(textbox1.text,textbox2.text,textbox3.textという感じに保存)
分割可能でしょうか? ,は表示されません
0225デフォルトの名無しさん
2007/12/26(水) 14:08:11「感じ」だけ言われてもなぁ
じゃあ
a,s,df(textbox1.txt, textbox2.txt, textbox3.txt という感じに分割)
すればいい
0226デフォルトの名無しさん
2007/12/26(水) 14:10:450227デフォルトの名無しさん
2007/12/26(水) 14:20:01わかりにくく書いて御免
訂正する
保存ボタンを押すとTextBox(複数)の内容を保存する
Dim abc As String
abc &= TextBox1.Text
abc &= ","
abc &= TextBox2.Text
abc &= ","
abc &= Textbox3.Text
保存すると
日本,中国,ロシア
これをTextBoxに戻すことをしたい
どうもすいません
0228デフォルトの名無しさん
2007/12/26(水) 14:22:460229デフォルトの名無しさん
2007/12/26(水) 14:32:29ありがとう!
0230デフォルトの名無しさん
2007/12/26(水) 14:42:35こういう<前提>で処理をしており、次にこういう<手段>で<目標>したいです。
どうやったら<手段>はできますか?
とか聞いてくれれば答えやすいのに。
0231デフォルトの名無しさん
2007/12/26(水) 15:04:15おまいらありがとう
0232デフォルトの名無しさん
2007/12/26(水) 15:46:130233デフォルトの名無しさん
2007/12/26(水) 16:02:26ストリングビルダってどういう時に使うのがいいん?
SQL組み立てる時にはいいんだろうけど、それ以外の用途ってあまり思い浮かばない
何よりindexofが無いのが致命的
結局ストリングの代わりに使えるようなもんじゃ無いってこと?
0234デフォルトの名無しさん
2007/12/26(水) 16:06:39自分で解決できるのが一番だ。
>>230みたいに考えて、それでも解からないなら質問すればいい。
思考ゼロで質問丸投げしてくるやつは成長しないぞ。
0235デフォルトの名無しさん
2007/12/26(水) 16:13:28どぼんより引用
Stringクラスではなく、System.Text.StringBuilderクラスを使うことにより、文字列の置換や追加などの
処理をより高速に行うことができます。
例えば、Stringクラスで文字列の連結を行うと、文字列を連結するたびに新しいインスタンスを
作成するため、パフォーマンスが落ちますが、StringBuilderクラスでは、そのようなことがありません。
文字列の置換や追加などの処理を頻繁に行う時は、StringBuilderクラスを使うとよいでしょう。
逆に言えば文字列の置換や追加などの処理を頻繁に行わない時は、意識して使うこともないってこった。
0236デフォルトの名無しさん
2007/12/26(水) 16:16:06100万回くらい文字列の連結をするループ作って
StringとStringBuilderを比較してみるといい
0237デフォルトの名無しさん
2007/12/26(水) 16:19:25メモリたらんわwwww
0238デフォルトの名無しさん
2007/12/26(水) 16:39:03その程度のもんなんだね
THX
いやまあそんなに違うもんなら、今までに書いたの全部書き直さなきゃいかんかと思て
0239デフォルトの名無しさん
2007/12/26(水) 17:09:39いや素朴な疑問。
0240デフォルトの名無しさん
2007/12/26(水) 17:26:270241デフォルトの名無しさん
2007/12/26(水) 18:41:22100万=1M
10文字くらいの連結なら最近のPCならなんら問題ない
0242デフォルトの名無しさん
2007/12/26(水) 20:31:57コピー時に両方いるから×1.5
最悪必要量の2倍確保されるから最悪の場合は×2
よって最悪6倍
ああもちろんこれは1文字ずつ足した場合だから
さらに足していく文字数倍なw
0243デフォルトの名無しさん
2007/12/26(水) 20:35:40過渡的に使うメモリはトータルでさらに倍か、それでもまあ120Mくらいか。
0244デフォルトの名無しさん
2007/12/26(水) 20:37:030245デフォルトの名無しさん
2007/12/26(水) 20:38:1030M×100万だ
0246デフォルトの名無しさん
2007/12/26(水) 20:40:080247デフォルトの名無しさん
2007/12/26(水) 20:42:360248デフォルトの名無しさん
2007/12/26(水) 21:09:270249デフォルトの名無しさん
2007/12/26(水) 21:14:030250デフォルトの名無しさん
2007/12/26(水) 21:19:12100万回×1000万文字×2バイト÷2で
1000万Mだな、過渡的なものを含めたトータルで。
10Tか。
メモリ帯域ってどんくらいだっけ?
0251デフォルトの名無しさん
2007/12/26(水) 21:20:550252デフォルトの名無しさん
2007/12/26(水) 21:22:04aを100万回連結してみる
0253252
2007/12/26(水) 21:35:44とめたくなって来たぜ…w
0254デフォルトの名無しさん
2007/12/26(水) 21:42:02代わりに20万回でやったわ
String: 98297ミリ秒
StringBuilder: 16ミリ秒
0255デフォルトの名無しさん
2007/12/26(水) 21:48:43String: 157ミリ秒
String: 562ミリ秒
String: 3875ミリ秒
String: 20766ミリ秒
StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒
StringBuilderのほう、10万回以下じゃ0ミリだぜ、、、
0256デフォルトの名無しさん
2007/12/26(水) 22:12:01コンパイラが文字列連結をコンパイルするとき,
3つまではString()のコンストラクタ使われて,それ以外だとゴニョゴニョするって記事をどこかで見たな
0257デフォルトの名無しさん
2007/12/26(水) 22:13:48そこが重要だろww
0258デフォルトの名無しさん
2007/12/26(水) 22:25:27純粋なメモリ転送よりは圧倒的に効率悪いだろうから、
10分の1の1文字ずつでも1時間はかからないかどうかってとこかな?
■ このスレッドは過去ログ倉庫に格納されています