[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 04/09 11:51 / Filesize : 214 KB / Number-of Response : 894
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ(Part31)



1 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:44:56 ]
前スレ

VB.NET質問スレ(Part30)
pc12.2ch.net/test/read.cgi/tech/1242522019/l50

テンプレは>>2

792 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:34:37 ]
そういや2008はマニフェスト書かなくてもデフォでUAC対応になってるんだっけ?
それともその辺りは2005から変ってない?

793 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:40:09 ]
2005は知らんが、2008はプロパティからマニフェストのテンプレートを表示できるようになってるな

794 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 23:26:02 ]
あーデフォでリダイレクトをキャンセルするマニフェストがくっついてるんだね。
マニフェストファイルを直接変更する必要がある点は変らずか。

795 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 06:43:16 ]
ウィンドウズフォームアプリケーション作ろうとしたら
ツールボックスってのに大量のツール(ボタンとかテキストボックスとか)

あれに自分で何かつくって追加したいんだけどExpress Editionだと自作不可能なの?

796 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 07:12:53 ]
できるよ

797 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 07:48:42 ]
新規作成にそれようのプロジェクトがあるでしょう。

無料版は知らんけど。

798 名前:デフォルトの名無しさん [2009/11/05(木) 16:07:09 ]
TreeView(@Windows.Form/VS2005)についての質問、
指定したTreeNodeを最適な位置にスクロールしたいのだが、良い方法が
あったら知りたく。WindowsVistaのExplorerでのフォルダツリーのような
動作を希望。どうもメソッドやプロパティに該当しそうなものがなく。
ググってみたのですがわかりません。

799 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:13:06 ]
>>798
調べ方が・・・

このメソッドは何だっけ?
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.treenode.ensurevisible(VS.80).aspx


800 名前:デフォルトの名無しさん [2009/11/05(木) 16:19:25 ]
>>799
どうもです。ただEnsureVisible()だと長い名前のときに
NodeのImageが左側に隠れてしまうのが不便で、
VistaのExplorerのフォルダツリーのようにインテリジェント風味な
動きをしてちょうどいい感じの見やすい位置に持って行ければベターと
いう思い。見ると適度にスクロールさせられればいいのだが、
どうもスクロール系のメソッドがなさそうに思われ・・・。




801 名前:デフォルトの名無しさん [2009/11/05(木) 18:50:57 ]
結局、TreeViewにはScroll系のメソッドはなさそうというのは間違いない
ですかね?なんとか見やすい位置に制御したいのだが、やはり無理だろうか?

802 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 14:42:31 ]
VB2008Express でD&Dされたテキストファイルの内容を処理するアプリを作成しているのですが、
エクスプローラーからファイルをD&Dすると、処理している間エクスプローラーが固まってしまいます。
この現象を回避する方法はないでしょうか?

803 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 14:51:22 ]
>>802
いったん手元にコピーして編集終わってからコピーして返す

804 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 17:05:19 ]
>>803
コピーしたファイルを処理するという発想はありませんでした、
試してみたいと思います。

もし他にも方法がありましたらよろしくお願いします。

805 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:48:11 ]
Control.BeginInvokeしてその中で処理する。

806 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:22:25 ]
>>805
Control.BeginInvokeについて調べてみました。
正直難しくてすぐには使いこなせそうではないのですが、
関連情報の載ったページが色々と見つかったので勉強してみたいと思います。
情報ありがとうございました。とても参考になりました。

807 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:40:31 ]
VB.NETってはやってないの?
VB.NETやってみたいんだけど、なにを
ダウンロードすればいいの?

808 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:44:28 ]
そんなこと言ってるようじゃ無理
プログラミングで一番大事なのは必要な情報を自分で調べられること

809 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:49:23 ]
www.microsoft.com/japan/msdn/vstudio/Express/
ここにあるよ

810 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:44:19 ]
VBっていうと(笑)感が漂うんですがなんででしょうか?

C系最強厨が多いのどうして?



811 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:49:36 ]
VBScriptってVisualBasicScriptの略なんですか?、どこがビジュアルなんですか?

812 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:04:30 ]
>>810
が勝手に妄想してるだけじゃね?
別に目的のものがつくれれば手段は何でもいいとおもうし普通みんなそうだと思うけど?

VBではC++とかみたいにローレベルな部分ができないとかはあるだろけど
VBも.netになったらC#と変わらんし

813 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:10:01 ]
>>811
固有名詞だと思えば?


釣りにマジレスしてる俺暇人
つうか落ちた鯖復旧待ちorz

814 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 15:28:32 ]
ADO.NETなんかどうなるんだよ。
どこがActiveXだ。


815 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 21:07:04 ]
今のVBって製品名というより言語の名前なんだぜ

816 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 21:51:00 ]
高校数学でBasicとかいうプログラミング言語をしった人が
初めて手にして違いに愕然とするVB

817 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:27:38 ]
あのー、VBもC#も変わらんってのは本当ですか?
逆に一番の違いって何ですか?
プログラム初心者ですが先輩に「今からならC#」って断言されたんですけど、、、

818 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:31:51 ]
>>817
片方できれば両方できるくらい同じ

819 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:36:56 ]
VB.NETとC#なら、
VB.NETのほうが、
すこしだけかんたんなの?

820 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:41:29 ]
どっちも知らないなら同じ
VBやってた人はVB.NETが簡単
Javaやってた人ならC#が簡単



821 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 05:05:40 ]
VBは内部的にどう動いてるかわからなくていい人向け

型とかポインタとかの情報が隠蔽されてる。
ソースファイルも余計なもの見せてくれない。

c#はunsafeでもうポインタ使いまくり。ソースファイルも全部見せてくれる。

822 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:09:00 ]
いやC#でもポインタはほぼ使わないが
C/C++に比べて限定的だからそんなに旨みないし

823 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:29:39 ]
最近FileSystemObjectを使わないのはなでぜしょう

824 名前:デフォルトの名無しさん [2009/11/08(日) 09:36:23 ]
Visual Studio 2008 Express Edition で下記のようなファイルがあり

1234★日本語の全て.doc
1235★韓国語の全て.doc
1236★英語の全て.doc
1237★フランス語の全て.doc


ファイル名は頭に半角数字4桁の後に★がつくように付けてるのですがこれを

日本語の全て 1234★日本語の全て.doc
韓国語の全て 1235 ★韓国語の全て.doc
英語の全て 1236★英語の全て.doc
フランス語の全て 1237★フランス語の全て.doc

左側は半角数字4桁と★と拡張子を抜いて、右側には取得したファイル名を、その間は上は半角スペースで書きましたが
タブ文字で区切ったファイルを作りソフト自体には表示させなくてもいいので結果をクリップボードへ貼り付けるソフトを作れ
ないかと思い下記のように書いてみたのですがうまくクリップボードへ貼り付けてくれません。チェックポイントをお教えください。

825 名前:デフォルトの名無しさん [2009/11/08(日) 09:42:15 ]
a-draw.com/uploader/src/up4081.zip.html

826 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:58:01 ]
面倒だからソースは見てない。

あのね、切り分けって知ってる?

ファイルを列挙するところ、ファイル名を取得するところ、タブを挿入するところ、
クリップボードに追加するところ、などなど・・・

プログラムはいくつかの部分に分けられるのよ。ブレイクポイントを貼って
動作を確認するなりして、どの部分が悪いのか自分で調べてみなよ。

827 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:09:00 ]
できた
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(".\")
for each objf in objfolder.files
 d = split(objf.name, "★")
 if ubound(d) > 0 then
  e = split(d(1), ".")
  if ubound(e) > 0 then
   s = s & d(0) & vbtab & e(0) & vbcrlf
  end if
 end if
next

set objIE = WScript.createObject("InternetExplorer.Application")
objIE.navigate "about:blank"
while objIE.busy
 wscript.sleep 10
wend
objIE.document.parentWindow.clipboardData.setData "text", s
objIE.quit



828 名前:824 [2009/11/08(日) 10:30:13 ]
>>826
ブレイクポイントを貼るという操作はどのようにしたらよいのでしょうか。

>>827
ありがとうございます。後で試してみます。

829 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:31:29 ]
VB.netで演習問題見たいなサイトないですか。
1000行以下でかけるような。

仕事でVB.netやり始めて1か月だけど、
クラスが多数で行数も1万超えだし、理解するのに苦労している。
型がクラスとかわけわかめです。

830 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:35:20 ]
> 型がクラスとかわけわかめです。
演習だのなんだのより先に基礎を解説した本なりサイトなり読むべきじゃないか



831 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:37:52 ]
>>830
一応クラスやオブジェクトの意味と意義はよんだつもり。
実践でこなしていきたいと思ってるんだ。

832 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:39:53 ]
>>831
homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/index.html

833 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:43:29 ]
>>832
ありがとう。一応下記とかも読んでVB.net2008でやってるんだけどね。。
itpro.nikkeibp.co.jp/article/COLUMN/20060921/248617/

834 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:46:40 ]
そんなことより、まず構造化設計を学べよ。
カプリングとコヒージョン、きっちり身についてる?

835 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:51:26 ]
VBにはフォームというのが用意されているのでクラスとか気にせずに良い

836 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 11:07:36 ]
最近は、結合度・凝集度という言葉は使わないのか。
素で何のことかと思っちゃったよ。

837 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 11:17:18 ]
もしかして
VBって行の最後に
;セミコロンいらねーのか?

838 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 11:28:35 ]
いらねーよ
Basicだもん

839 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 11:39:42 ]
VB expressみたいにして
javascriptを書くソフトってあるの?

ボタンをドラッグしてきて
そのボタンをダブクリでコードを書く画面になる

もしボタンをおしたら、、、
ってところまで勝手にコードが書かれていて、
実際に押されたらどうなるか、って
部分だけを自分で書く、っていう。

840 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 19:52:29 ]
>>823
昔のVBからの変換を容易にするために用意されてるだけなので新規に使ってはいけない
そのうち消えても知らないよ



841 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 22:42:13 ]
は?WSHのオブジェクトでしょそれ。
何を言ってるんだ。

842 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 22:44:46 ]
>>823
使う必要がないだろ。


843 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 06:45:36 ]
Windowsのファイル名に使えない文字列は?

844 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 06:55:41 ]
\ / : * ? " < > |

845 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:40:29 ]
それは使えない文字で、使えない文字列じゃなかろう?

846 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:43:09 ]
>>841
は?何を言ってるんだ。
VB6、VBAのオブジェクトでしょそれ。

847 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:19:59 ]
>>843
con
nul
...

848 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:48:41 ]
>>816

N88とQuickBasic触ってたから大して違和感なかった。

849 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:55:26 ]
>>846
!?

850 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:27:36 ]
>>849
ttp://msdn.microsoft.com/ja-jp/library/cc376843.aspx
Office の VBA に新しく追加されたオブジェクトには FileSystemObject および Dictionary の 2 つのオブジェクトがあり、



851 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:29:57 ]
ttp://msdn.microsoft.com/ja-jp/library/cc440853.aspx
Visual Basic 6.0 でフォルダやファイルを作成する場合、 FileSystemObject の CreateFolder メソッド、CreateTextFile メソッドを使用します

852 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:23:43 ]
rs.movenextというメソッドは消えてしまったん?

853 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:53:50 ]
>>850
なんかこういう人ってマジで言ってそうでちょっと怖いw
さっすがVBty(以下略

854 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:13:00 ]
マジで言ってるな


855 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:41:06 ]
知ったかで出鱈目言うもんじゃないな

856 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:23:16 ]
>>846
COMオブジェクト

857 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:59:42 ]
>>856
は?何を言ってるんだ。

858 名前:デフォルトの名無しさん [2009/11/10(火) 15:40:40 ]
VB と VC# の違いについて

Visual Studio の各機能を正しく使いこなす知識さえあれば、
VB と VC# の違いはほとんど意識する必要がない。
(それが、VS の売り。)

VB プログラミングも VC# プログラミングも
要は Visual Studio をどう使いこなすかにかかっているので、
VB だろうと VC# だろうと覚えることは一緒。

片方覚えれば、もう片方もできるようになる。

別の言い方をすれば、VB プログラマも VC# プログラマも、
プログラマというより、Visual Studio ユーザー。
そこまで Microsoft は開発者をサポートする開発環境の開発に
注力してくれている、ということです。


859 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:16:28 ]
>>858
>要は Visual Studio をどう使いこなすかにかかっているので、
その程度のアプリケーション開発者にとっては
そうなんでしょうね。

860 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:18:05 ]
極限の効率化/高速化を求めていない趣味グラマーにとってはVBもVCもかわらん。



861 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:56:20 ]
極限w
そんなの求めるのは趣味グラマだけだよ


862 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:04:48 ]
>>858
は一体何を言いたかったのか

エスパーしてみると
聞きかじりの知識をひけらかして偉そうにしてみたかった!
ですよね〜?

つうか、今頃顔真っ赤にしてるんだろうなぁ・・・

863 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:34:48 ]
自作自演自滅ですか?

864 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:27:39 ]
C++なのかC#なのか

865 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:00:01 ]
IcoFxで作成したアイコンを読み込むとコンパイル時に”指定されたイメージ ファイルはリソース セクションを含んでいません。”
というエラーを起こしてしまいます、サイズは32 x 32で色数はTrue Color + Alpha Channel (32bit)
OSはXPSP3、バージョンは2005です

866 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:26:02 ]
なるほど

867 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 00:42:57 ]
同一のプロジェクトでForm1をUI的な表示あるいわ操作用のWindowsアプリケーション、Form2を主に計算処理等を行わせるコンソールアプリケーションで作りたいと思っています
この場合この二つのフォームは、それぞれ自動でマルチスレッティングで働いてくれるのでしょうか?

要するにForm1でユーザーが操作しているときにForm2のよりが止まってしまわないかが心配ということです。
よろしくお願いします。

868 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 08:49:45 ]
>あるいわ


>止まってしまわないかが心配
止まるに決まってるじゃないか。
プログラマがスレッド作らない限りシングルスレッドだ。

869 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 09:20:55 ]
> Form2を主に計算処理等を行わせるコンソールアプリケーションで

お前は何を言ってるんだ?

870 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 11:21:40 ]
初心者です。質問させていただきます。

1つのテキストボックス内で、
yahoo検索のような、空白によるand、or検索ができる
ものを作成したいと思います。
検索機能はできているのですが、1つのテキストボックスに複数語を入力して、

それを認識することができません。何かアイディアがあったらお願いします。

わかりにくくてすみません。



871 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 11:29:12 ]
普通全角か半角でSplitしてない?

872 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 11:31:15 ]
>>871
全角か半角のスペース

と書きたかったんだい!

873 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 21:54:23 ]
>>867
計算がメインなら計算用のスレッドを自分で起動する
間違ってもイベントハンドラの中でやらないように

874 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:29:34 ]
設定ファイルで、アプリケーションスコープで普通に読み書きできませんか?
やりたいのは、ユーザーフォルダではなく.exe直下に設定ファイルを置く事です。

875 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 23:17:56 ]
複数ユーザが同時にログオンして起動してたりしたらまずいだろ
だから読み取り専用になってるんだろ

876 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:15:16 ]
ん?

877 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:29:30 ]
>>874
別に制限が多い「アプリケーション設定」なんか使わず、
自分で設定値の保存/取得をするコードを書けばいいだけ。

シリアル化を使えば手間は「アプリケーション設定」と大差ない。
(むしろこっちの方が手間が少ない場合の方が多い。)

ただ、そうしたところで

- プログラムがProgramFiles以下のディレクトリにインストールされている場合、
  Vistaでは実行ファイルと同じ場所に設定ファイルの作成はできない。

- Vistaでなくても、デフォの設定では通常ユーザーで実行した場合は
  設定ファイルを作成できない。

ってだけのこと。

878 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 15:22:18 ]
アプリケーションスコープの設定はAll Usersに保存されるんだっけ

879 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 16:39:38 ]
されないよ。
そもそも変更不可だ。


880 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:28:48 ]
VBはビジュアルベーシック
.NETは何の略?



881 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 21:33:06 ]
あえていうならMicrosoft.NETの略

882 名前:デフォルトの名無しさん [2009/11/12(木) 23:22:16 ]
Visual Studio 2008 Express Editionでプログラムを作成しています。
開発しているPCではエラーも発生せず動作するのですが
あまりメモリを積んでいないPC(512MB)ではSystem.OutOfMemoryExceptionが発生します。

エラーが発生する環境を開発環境で再現するためにApplication Verifierを導入し,
Low Resource Simulationにチェックを入れて実行するとSystem.OutOfMemoryExceptionが発生しました。

メモリが足りないことがエラーの原因だと思いますが,FormにPictureBoxを数個置いているだけのプログラムでして
それほどメモリを使用しているとも思えません。CloseやDisposeで解放するようにしましたが状況は変わりません。

こうした問題はどうやって解決すべきでしょうか?

883 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:38:10 ]
>>882
そんなの知るかよ。

それほどメモリを使用しているとも思えません?
煽り抜きでいかにもダメな奴が言いそうな台詞だね可哀想。

884 名前:882 [2009/11/13(金) 00:07:33 ]
メモリの使用状況についてですが以下のような感じです。

Working Set - 20,684KB
Peak Working Set 20,800KB
仮想メモリ
Private Bytes - 18,912KB
Peak Private Bytes - 19,088KB

正直メモリ使用量の定義がよく分からないのでそれっぽい値を書き出しただけなんですが
コントロールの無いFormを表示させるだけのプログラムで以下のような感じなので
それほどメモリを消費してるとは思えないのです。

Working Set - 13,228KB
Peak Working Set 13,228KB
仮想メモリ
Private Bytes - 14,052KB
Peak Private Bytes - 14,052KB

885 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:50:37 ]
メモリ増やせばいいじゃん

886 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 01:05:57 ]
分からないなら分からないって言えよ

887 名前:デフォルトの名無しさん [2009/11/13(金) 04:07:16 ]

VB2010ベータ1をインスコして勉強がてら遊んでみた。
最近はマルチコアのCPUも多くなったし、重いループ処理は極力マルチコアで処理させようと考えて
次のようなコードで試してみたんだけど・・・

  Private counter As Integer
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   counter = 0
   System.Threading.Parallel.For(0, 10000, AddressOf proc)
   Console.WriteLine(counter)
  End Sub

  Private Sub proc(ByVal index As Integer)
   counter += 1
   For i As Integer = 0 To 1000000
  
   Next
  End Sub

counterの値が10000になると思ったのに何故か9998とかになっちまうじゃねえか!この野郎!
あと、System.Threading.Parallel.ForEachも試してみたが、これも同じ様に列挙が抜け落ちる!
言うまでもなく例外など出ない(笑)

俺がおかしいのか??それともベータだから未完成ってことなのか?


888 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 05:32:11 ]
>>887
そもそも += はスレッドセーフじゃなかったと思う

889 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 05:39:45 ]
>counter += 1
Interlocked.Increment(counter)

VBってvolatileにあたるのってなかったっけ?


890 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 09:37:39 ]
スレッドセーフってなんだよ!意味わからない専門用語つかうな!バーカ



891 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 09:38:28 ]
>>887
当たり前であって馬鹿はお前だ。
どういう事か理解できないならパラレルとかマルチスレッド絡みには
手を出さない方がいいぜ。

892 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:15:42 ]
>>890
MSDNのクラスのリファレンスに必ず「スレッドセーフ」があるんだが。
それでいて”意味がわからない専門用語”といってる時点で、あんたがココに来る資格ないよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef