贴段代码,高手们帮我看下,今天必须解决的问题,100分不够我下午另开100分

zzz22333 2007-06-21 09:48:12
Public Enum EN_LOGKIND As Byte
EN_COMMAND = 0
EN_SECNET = 1
EN_ETHER = 2
EN_ERROR = 3
End Enum
'构造体
Private Structure ST_LOG
Public m_enKind As EN_LOGKIND
Public m_strLog As String
End Structure

Private m_cLogQue As ClsQueue ‘ClsQueue是我自定义一个队列,没什么内容,只 有读和写俩函数
Private m_blThreadFlg As Boolean

'FileCheck()创建日志文件名称,删除旧的、过期的日志文件内容,同时还可以检测磁盘空间。
'FileOut()将操作的日志信息记录的相应的日志文件中去,m_strLog为记录的日志详细内容。

Private Sub LogOut()

Dim l_stLog As ST_LOG

Try
Do
If m_cLogQue.Count = 0 Then CurrentThread.Sleep(10)

If m_cLogQue.Count = 0 AndAlso m_blThreadFlg = False Then
Exit Do
ElseIf m_cLogQue.Count > 0 Then

l_stLog = CType(m_cLogQue.Dequeue(), ST_LOG)

With l_stLog

FileCheck(.m_enKind)

FileOut(.m_enKind, .m_strLog)

If m_blLogWndFlg = True AndAlso _
IsNothing(m_cLogForm) = False AndAlso _
m_blThreadFlg = True Then
m_cLogForm.AddLog(.m_enKind, .m_strLog)
End If

#If DEBUG Then
Debug.WriteLine(.m_strLog)
#End If
End With

CurrentThread.Sleep(5)

End If
Loop

Catch Err As Exception
LogWrite(EN_LOGKIND.EN_ERROR, "File :mod_com_log.vb Method :LogOut() Message :" & Err.Message)
End Try
End Sub


说明一下,程序运行时会记录当前日志到一个文件中,窗体中有个ListBox,我想通过debug将文件中的日志内容显示在这个Listbox中,控件属性肯定没问题,目前只知道程序运行m_cLogQue.Count的值是0,然后程序就不会走 Else If 里,有什么办法能让这段代码的日志显示到ListBoc中或者在某处强制将m_cLogQue.Count的值设置成大于0的。





...全文
243 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
amandag 2007-06-21
  • 打赏
  • 举报
回复
自己手动先加一项看看
zzz22333 2007-06-21
  • 打赏
  • 举报
回复
肯定不是fileOut的问题,是m_cLogQue.Count的问题,这个count是系统默认的,初始为0
CathySun118 2007-06-21
  • 打赏
  • 举报
回复
FileOut可能有问题
zzz22333 2007-06-21
  • 打赏
  • 举报
回复
我现在就是想让他添加进去日志才问的
Knight94 2007-06-21
  • 打赏
  • 举报
回复
to 目前只知道程序运行m_cLogQue.Count的值是0,然后程序就不会走 Else If 里,有什么办法能让这段代码的日志显示到ListBoc中或者在某处强制将m_cLogQue.Count的值设置成大于0的。

既然m_cLogQue.Count的值是0,说明没有日志可写
peter82 2007-06-21
  • 打赏
  • 举报
回复
路过UP
futman 2007-06-21
  • 打赏
  • 举报
回复
再封装一下这个ST_LOG控件,加个WodeCount的属性,不就OK了.
或者在Do后面加上dim wodeCount as int32 = m_cLogQue.Count,之后所有判断都用这个wodeCount, 这样你就可以在任何地方修改wodeCount的值咯.
yangaiyuan 2007-06-21
  • 打赏
  • 举报
回复
个人认为楼上正解
magicbacon 2007-06-21
  • 打赏
  • 举报
回复
手动给m_cLogQue加入一项,使其Count值大于0。
zzz22333 2007-06-21
  • 打赏
  • 举报
回复
Public Overridable ReadOnly Property Count As Integer
这个是那个count的定义,在MSDN上找到的,就是这个ReadOnly,让我无法手动更改m_cLogQue.Count的值

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧