Страница: 1 |
|
Вопрос: Почему не работает?
|
Добавлено: 17.03.08 22:29
|
|
Автор вопроса: RedRum
|
шифровальщик\расшифровальщик текста
ругается на OpenFileDialog3, грит
Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it. This exception is only raised if a debugger is attached to the process.
как поправить ума не приложу..
Public Class Form1
Dim thr As Threading.Thread = New Threading.Thread(AddressOf s1)
Dim thr2 As Threading.Thread = New Threading.Thread(AddressOf s2)
Public Sub s1()
Dim OpenFileDialog3 As New OpenFileDialog
OpenFileDialog3.ShowDialog()
Dim name = OpenFileDialog1.FileName
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
Do While Not EOF(1)
Dim A As String = LineInput(1)
RichTextBox1.Text += A + Chr(13)
Dim i = 0
For i = 0 To Len(A) - 1
RichTextBox2.Text += Chr(Asc(A(i)) + 1)
Next i
RichTextBox2.Text += Chr(13)
Loop
FileClose(1)
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Output)
Print(1, RichTextBox2.Text)
FileClose(1)
End Sub
Public Sub s2()
Dim OpenFileDialog2 As New OpenFileDialog
OpenFileDialog2.ShowDialog()
Dim name = OpenFileDialog1.FileName
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
Do While Not EOF(1)
Dim A As String = LineInput(1)
RichTextBox1.Text += A + Chr(13)
Dim i = 0
For i = 0 To Len(A) - 1
RichTextBox2.Text += Chr(Asc(A(i)) - 1)
Next i
RichTextBox2.Text += Chr(13)
Loop
FileClose(1)
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Output)
Print(1, RichTextBox2.Text)
FileClose(1)
End Sub
Public Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
thr.Start()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
thr2.Start()
End Sub
End Class
Ответить
|
Номер ответа: 4 Автор ответа: s12
Вопросов: 24 Ответов: 363
|
Профиль | | #4
|
Добавлено: 19.03.08 01:26
|
а как ее вызвать в родительском
thr.Start()
Dim OpenFileDialog2 As New OpenFileDialog
OpenFileDialog2.ShowDialog()
А еще лучше:
Dim OpenFileDialog2 As New OpenFileDialog
OpenFileDialog2.ShowDialog()
thr.Start()
Потому что в 1м случае можешь наловишь кучу глюков.
Может все таки стоит вернутся к однопоточной программе?
И вообще, пошастай по форуму, где-то этот вопрос обсуждался.
Ответить
|
Страница: 1 |
Поиск по форуму