Python Process子类条件执行

时间:2014-05-30 17:37:45

标签: python process multiprocessing pywin32

我目前正在尝试创建一个错误处理模块,其中包含一个Process子类,它可以异步处理错误消息的显示。但是,我只想显示一个特定错误消息的实例(而不是弹出多个窗口)。以下是我到目前为止的情况:

import win32api
import winsound
from multiprocessing import Process

class Error:
    NetworkImageError, DiskError = range(2)

# This moudle contains the Process subclass handleError. This will create an
# asynchronous process that will create a Windows alert dialog for critical errors.

class handleError(Process):
        def __init__(self, file_name, error_type):
            super(handleError, self).__init__()
            self.error_type = error_type
            self.file_name = file_name

        def run(self):
            title = message = ''

            if self.error_type == Error.NetworkImageError:
                title = 'Network Error'
                message = 'Unable to notify server about the file ' + self.file_name + '. Check your network connection.'
            elif self.error_type == Error.DiskError:
                title = 'IO Error'
                message = 'Unable to read/write the file ' + self.file_name + '. Check your storage drive.'

            winsound.MessageBeep(-1)
            win32api.MessageBox(0, message, title, 0x00001000)

我认为应该有某种全局(或静态?)变量(或数组)可以跟踪当前显示的警报。因此,假设handleError Process可以有多个实例,如何只显示每个错误消息的一个实例?

即。如果当前正在显示IO错误警报,则将忽略显示相同警报的后续请求。

0 个答案:

没有答案