我正在使用pythonnet製作簡單的GUI。如何終止正確的應用程序退出線程
import os, sys, ntpath, threading
from subprocess import call
import clr
clr.AddReference("System")
clr.AddReference("System.Windows.Forms")
import System
import System.Windows.Forms as WinForms
from System.Threading import ApartmentState, Thread, ThreadStart
from System.Windows.Forms import (Application, Form, Button)
from System.Drawing import Point
class demo(WinForms.Form):
def __init__(self):
self.filename = None
self.InitializeComponent()
def InitializeComponent(self):
"""Initialize form components."""
self.components = System.ComponentModel.Container()
self.btn = Button()
self.btn.Parent = self
self.btn.Click += self.process
self.CenterToScreen()
self.cmd = "Running forever command"
def Dispose(self):
self.components.Dispose()
WinForms.Form.Dispose(self)
def thread_process(self):
call(self.cmd, shell=True)
pass
def process(self, sender, args):
self.thread = threading.Thread(target=self.thread_process, daemon=True)
self.thread.start()
def OnClickFileExit(self, sender, args):
self.Close()
WinForms.Application.Run(demo())
它工作正常,但當我單擊退出按鈕時,顯然應用程序不會停止。如何在用戶關閉應用程序時正確停止正在運行的線程?
這是IronPython的或pythonnet? – denfromufa