У меня есть асинхронная функция A которая вызывается по event `on_raw_reaction_add`, в ней я пытаюсь поставить в поток другую асинхронную функцию B через модуль `threading. Функция B выполняет отправку сообщений в канал из своих аргументов.
Я плохо знаком с корутинами и потоками, но как я понимаю поставить в поток можно только асинхронную функцию. Я пробую это сделать в функции A без использования await исходя из логики прерывания, и получаю ошибку - `RntimeWarning: coroutine 'FarmZat' was never awaited`. Тогда я подставляю `await` к `FarmZ.start()` и при выполнении функции A снова получаю ошибку `TypeError: object NoneType can't be used in 'await' expression`.
Что я делаю не правильно и как нужно поставить функцию в поток? Буду благодарен за помощь, даже за ссылку в документацию.
**A**:
**B:**
Я плохо знаком с корутинами и потоками, но как я понимаю поставить в поток можно только асинхронную функцию. Я пробую это сделать в функции A без использования await исходя из логики прерывания, и получаю ошибку - `RntimeWarning: coroutine 'FarmZat' was never awaited`. Тогда я подставляю `await` к `FarmZ.start()` и при выполнении функции A снова получаю ошибку `TypeError: object NoneType can't be used in 'await' expression`.
Что я делаю не правильно и как нужно поставить функцию в поток? Буду благодарен за помощь, даже за ссылку в документацию.
**A**:
Python:
async def CreateFarmChannel(member: discord.Member):
guild = bot.get_guild(880008097370865706)
category = discord.utils.get(guild.categories, name="Фермы")
channel = await guild.create_text_channel(f'⛏{member.name}', category=category)
await channel.set_permissions(guild.default_role, read_messages=False)
await channel.set_permissions(member, read_messages=True, send_messages=True)
FarmZ = Thread(target=FarmZat, args=(member, channel))
FarmZ.start()
**B:**
Код:
async def FarmZat(member: discord.Member, channel):
await channel.send("Канал создан")