Я использую стороннюю библиотеку .Net в Python 3.6 через Python для .Net, которая использует EventHandlers для предоставления асинхронных данных моему приложению, как в примере с игрушкой ниже:
import clr
from System import Timers
def tock(__, args):
print(args.SignalTime)
timer = Timers.Timer()
timer.Interval = 1000
timer.Elapsed += tock
timer.Enabled = True
while True:
pass
Я бы хотелчтобы получить эти данные в асинхронный генератор, что-то вроде:
import clr
from System import Timers
async def tock(__, args):
yield args.SignalTime
async def main():
result = await tock
print(result)
timer = Timers.Timer()
timer.Interval = 1000
timer.Elapsed += tock
timer.Enabled = True
while true:
result = await timer
print result
Явно просто бросив asyc
и yield
на функцию-обработчик событий и await
с таймером, этого не будет, ноЕсть ли простой способ сделать это?