原代码的问题: 1.计时器每过 [Interval] 毫秒就会自动触发 Timer() 事件,而你在其中又加了一个循环,让人不知所云 2.下面这段代码是始终无法执行到 Close 1 的,因为一旦跳到这段代码,首先执行的便是 Exit Sub ,于是程序就不会关闭这个文件。 E: Exit Sub Close 1 同时,正确的语法应是:Close #1 3.最好不要频繁的打开、关闭文件,这样会影响程序的性能 4.你的变量 i 与 NewFile 的声明有问题。如果在某一事件中使用 Dim ,在其所在的事件结束后,变量就会被销毁。于是 NewFile 便始终只有一个字符。应该使用 Static 创建静态变量,或将这两个变量用 Dim 在(通用)(声明)处将其声明。 你可以在(通用)(声明)处(所有代码的最上面)声明: Dim File As String '文件名 Dim Fid As Integer '文件号 把打开文件的代码放在窗体打开的事件里面: Private Sub Form_Load() Fid = FreeFile File = "F:\test1.txt" Open File For Input As #Fid End Sub 注:此处你最好用 FreeFile 生成一个空闲的文件号。万一 #1 这个文件号被占用,那程序还是会出错的。 然后在定时器里面添加代码: Private Sub Timer1_Timer() Static i '因为 i 是随着定时器的事件一一累加的,所以要声明为静态变量。 Static NewFile As String '因为 NewFile 里的字符是随着定时器的事件一一累加的,所以要声明为静态变量。 Dim Char As String '因为 Char 只是作为临时变量,所以声明为普通变量。 On Error GoTo E i = i + 1 Char = Input(i, #Fid) '你在这里写的代码是 Char = Input(1, #1) ,是不是写错了?我给你改成了 i NewFile = NewFile + Char Text1.Text = NewFile IF i = LOF(Fid) Then Timer1.Enable = Fals
创新互联建站基于分布式IDC数据中心构建的平台为众多户提供托管服务器 四川大带宽租用 成都机柜租用 成都服务器租用。
下面的代码示例说明了更改线程优先级的结果。创建两个线程,其中一个线程的优先级设置为 BelowNormal。两个线程在 while 循环中都增加一个变量,并运行一段设定的时间。
Option Explicit
Option Strict
Imports System
Imports System.Threading
Public Class Test
MTAThread _
Shared Sub Main()
Dim priorityTest As New PriorityTest()
Dim threadOne As Thread = _
New Thread(AddressOf priorityTest.ThreadMethod)
threadOne.Name = "ThreadOne"
Dim threadTwo As Thread = _
New Thread(AddressOf priorityTest.ThreadMethod)
threadTwo.Name = "ThreadTwo"
threadTwo.Priority = ThreadPriority.BelowNormal
threadOne.Start()
threadTwo.Start()
' Allow counting for 10 seconds.
Thread.Sleep(10000)
priorityTest.LoopSwitch = False
End Sub
End Class
Public Class PriorityTest
Dim loopSwitchValue As Boolean
Sub New()
loopSwitchValue = True
End Sub
WriteOnly Property LoopSwitch As Boolean
Set
loopSwitchValue = Value
End Set
End Property
Sub ThreadMethod()
Dim threadCount As Long = 0
While loopSwitchValue
threadCount += 1
End While
Console.WriteLine("{0} with {1,11} priority " _
"has a count = {2,13}", Thread.CurrentThread.Name, _
Thread.CurrentThread.Priority.ToString(), _
threadCount.ToString("N0"))
End Sub
End Class
可以将文件等分成两部分,分别用两个private读取就是2线程。
内存解决方案:不要等程序自动GC,自己手动释放不需要内存。
缺陷:可能会浪费时间。
弟你好:
我是在微软做教材的员工,据我了解学习.NET入门并不难。如果你了解JAVA这门语言,那么学习会很轻松。如果没有接触过面向对象编程可能就要麻烦一点点。大概也就是1个月左右便可以入门。因为基本上你要是学习VB.NET的话,除了部分语法可以借鉴老的VB,其他基本都要抛弃。但是不会很困难。最重要的就是理解.NET运行原理,掌握语法和部分常用类库就可以了。
看你所述你似乎想要做网站。市场行情来看,人家免费论坛都已经发布源码很多了,无论是ASP还是.NET开发,都变得非常容易。如果想从这方面就业,前景也不是很乐观。其实如果不是很麻烦的网站,微软OFFICE组件中的SharePoint Server就可以完全满足要求。根本不需要懂多少编程。
如果想从事工作,还是推荐学习VS.NET 2005和SQL Server 2005。
以上是哥哥的愚见,希望对你有所帮助
求采纳为满意回答。
set xxx=nothing就是把对象占用的空间释放掉。 其他的局部变量都在栈内存,用完会自动释放的