C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 >>
■82470  Re[47]: VBでCRC32を高速で計算する方法
□投稿者/ shu -(2017/01/11(Wed) 13:04:34)
    No82468 (ぎゅんぎゅ さん) に返信
    > なちゃさん
    >
    > あと、
    > このプログラムを作ろうと思った動機は
    > 二つのHDDに同じファイルがあり、
    > それらのファイルがバイナリレベルで等価かどうかを確かめたいためです。
    >
    > それぞれのHDDのファイルのハッシュを順番に求めて
    > 比較すれば、目的を達成することができるます。
    >
    スレの途中をあまり読んでいないので間違っているかもしれませんが
    ファイル内の全バイトを読み込んでいるのなら2つのファイルから同バイト数づつ
    読み込んで全バイトを比較すればよいのではないでしょうか?相違があった時点で
    読込を継続する必要もなくなるのでは?
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82472  Re[48]: VBでCRC32を高速で計算する方法
□投稿者/ ぎゅんぎゅ -(2017/01/11(Wed) 13:12:41)
    魔界の仮面弁士さん

    マルチスレッドを使わずにプログラムを書くと
    計算中にフォームがフリーズしてしまいます。
    そのため、既に計算全体をバックグラウンドで計算するようにしています。

    そのバックグラウンドのスレッドから
    更にもう一つバックグラウンドのスレッドを生成して
    別のHDDのハッシュを同時並行で計算するということは可能なのでしょうか?
     
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82473  Re[49]: VBでCRC32を高速で計算する方法
□投稿者/ ぎゅんぎゅ -(2017/01/11(Wed) 13:14:10)
    魔界の仮面弁士さん

    あと、マルチスレッドは
    引数をもつことはできますが
    返り値をもつことができませんが、
    どのようにして計算してハッシュを元のスレッドに返せば良いですか?

    パブリック変数を使うしかないですか?
     
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82475  Re[50]: VBでCRC32を高速で計算する方法
□投稿者/ 魔界の仮面弁士 -(2017/01/11(Wed) 13:20:26)
    No82473 (ぎゅんぎゅ さん) に返信
    > 引数をもつことはできますが
    > 返り値をもつことができませんが、
    できますよ。BackgroudWorker なら e.Result に返却した上で、
    依頼側は RunWorkerCompleted で受け取れますし、
    Task なら Task(Of 戻り値型) として返却する形にして、
    Result プロパティを使うなり、Await するなりすれば良いわけで。


    > パブリック変数を使うしかないですか?
    「他のスレッドが書き込んでいる間は、他のスレッドは読み書きしてはならない」ので、
    変数を共有したら、同期制御が煩雑になりますよ。
    排他制御用の仕組みはありますが、その分遅くなってしまいますし。
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82479  Re[51]: VBでCRC32を高速で計算する方法
□投稿者/ ぎゅんぎゅ -(2017/01/11(Wed) 14:03:47)
    魔界の仮面弁士 さん

    ありがとうございます。

    MultiProgram_run = New System.Threading.Thread( _
    New System.Threading.ParameterizedThreadStart(AddressOf Program_run1xx))
    MultiProgram_run.IsBackground = True

    MultiProgram_run.Start()

    というのでマルチスレッドを実行していますが
    どのようにすれば返り値を取得することができますか?
     
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82484  Re[52]: VBでCRC32を高速で計算する方法
□投稿者/ 魔界の仮面弁士 -(2017/01/11(Wed) 15:31:33)
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82485  Re[53]: VBでCRC32を高速で計算する方法
□投稿者/ ぎゅんぎゅ -(2017/01/11(Wed) 16:11:03)
    魔界の仮面弁士 さん

    今まで使っていた方法が古い方式とは知りませんでした。
    それでは新しいtaskの方式を使いたいと考えています。

    教えてくださったwebページで戻り値の取得する方法は分かったのですが
    引数の与え方が分かりませんでした。
    どうすれば引数を使うことができますか?

    Imports System.Threading
    Imports System.Threading.Tasks

    ''' <summary>
    ''' タスクの実行結果を受け取るサンプル
    ''' </summary>
    Module Module1
    ''' <summary>
    ''' メイン
    ''' </summary>
    Sub Main()
    ' タスクを作成
    Dim t = New Task(Of String)(AddressOf Func1)
    ' タスクを開始する。
    t.Start()
    ' タスクの終了を待機する。
    t.Wait()
    'タスクの実行結果を表示する。
    MsgBox(t.Result)
    'Console.WriteLine("Done.")
    #If DEBUG Then
    ' Console.ReadKey()
    #End If
    End Sub

    ''' <summary>
    ''' 値を返す関数型のタスクメソッド
    ''' </summary>
    ''' <returns>タスクの戻り値</returns>
    Function Func1(ByVal ddd As Integer) As String
    ' Thread.Sleep(1000)
    Return ddd * 2
    End Function
    End Module
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82486  Re[54]: VBでCRC32を高速で計算する方法
□投稿者/ ぎゅんぎゅ -(2017/01/11(Wed) 16:56:25)

    Dim t = New Task(Of String)(AddressOf Func1, ddd)


    でいけました。
     
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

■82497  Re[55]: VBでCRC32を高速で計算する方法
□投稿者/ ぎゅんぎゅ -(2017/01/11(Wed) 19:46:40)
    教えてくださった方法で
    並列化処理でのハッシュの取得がうまくいきました。

    ありがとうございます。
     
記事No.82326 のレス /過去ログ140より / 関連記事表示
削除チェック/

<前の20件

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 >>

ヒット件数が多いので過去ログ1〜140 までの検索結果 / 過去ログ141からさらに検索→

パスワード/

- Child Tree -