帮助将PYTHON转换为VB.NET版

2024-09-28 23:38:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写应用程序VB.NET版发送短信。在

请您发表PYTHON->;VB.NET版 本规范和/或指南的翻译?在

提前谢谢!!!在

import threading
class MessageThread(threading.Thread):
    def __init__(self,msg,no):
        threading.Thread.__init__(self)
        self.msg = msg  # text message
        self.no  = no   # mobile number
    def run(self):
        # function that sends "msg" to "no"
        send_msg(msg,no) 

# records of users are retrived from database 
# and (msg,no) tuples are generated
records = [(msg1,no1),(msg2, no2),...(msgN,noN)] 

thread_list = []

for each in records:
    t = MessageThread(each)
    thread_list.append(t)

for each in thread_list:
    each.start()

for each in thread_list:
    each.join()

Tags: noinselffornetdefmsgthread
2条回答

这段代码为每个msg/no tuple创建一个线程并调用sendmsg。第一个“为每一个。。。每个开始()“启动线程(它只调用sendmsg)和第二个“for each…”。。。每个。加入()”等待每个线程完成。根据记录的数量,这可能会创建大量的线程(如果发送1000条SMS记录会怎样),虽然这是异步的,但并不一定有效。在

这段代码相对来说是简单的python代码,而对于.NET,您可能希望使用ThreadPool或{a2}来执行sendmsg调用。您将需要创建一个与元组(msg,no)等效的.NET类,并可能将sendmsg()函数放在类本身中。然后创建.NET代码来加载消息(这在Python代码中没有显示)。通常,您也会使用通用列表来保存SMS记录。然后,sendmsg和所有的线程队列将调用。在

如果您试图保持代码与原始Python相同,那么应该查看IronPython。在

(sendmsg中的下划线导致文本使用斜体,因此我删除了响应中的下划线。)

这是IronPython代码(“Python for.NET”),因此源代码与VB一样使用.NET框架,所有类(甚至System.Threading.Thread)都可以以相同的方式使用。在

一些提示:

MessageThread派生自Threadmsg和{}必须声明为类变量,__init__是构造函数,成员函数中的self-参数不会被转换为VB(只需省去它)。对List<Thread>使用List<Thread>,并为records中的元组定义一个小结构。在

相关问题 更多 >