0

vb.net には、次のようなパスワードでテキストを暗号化する機能があります。

Public Class PROT
Shared Function EncryptWithPassword(Target As String, Password As String) As String

'Target is the given text
'Password is the password

Dim datas as string =""

'store the encrypted text and with password in datas and return it

Return datas
End Function
End Class

フォームでこの関数を次のように使用します。

Private Sub encryptbtn_Click(sender As Object, e As EventArgs) Handles encryptbtn.Click
   Dim texttoencrypt As String = TextBox1.Text
    Dim passwordtotext As String = passwordbox.Text
    Dim enc As String = PROT.EncryptWithPassword(texttoencrypt, passwordtotext)
    IO.File.WriteAllText("C:\Users\Ubaada\Documents\SAFE.txt", enc)
End Sub

Textbox1 のテキストの長さが 5000 より小さい場合、コードはフォームを 2 秒間だけハングさせます。しかし、長さ100000で試してみると、フォームがハングし、応答しなくなりました。40 秒以内に応答するべきではありません (100000 は 5000 の 20 倍であるため)。


私の質問は、フォームがハングせず、長さが 100000 以上の文字列で動作しないように、コードを操作するにはどうすればよいかということです。スレッドについて聞いたことがありますが、次のようには使用できないと思います。

Dim enc as string=Thread.Start(PROT.EncryptWithPassword(texttoencrypt, passwordtotext))

4

1 に答える 1