Использование асинхронного метода C # при переполнении стека

Я сделал проект библиотеки классов (.net framework) на C # и хочу использовать эту DLL в моем клиентском проекте C ++.

Я проверил на MSDN и онлайн для получения инструкций о том, как я сделал это. Таким образом, я мог видеть результат кода C # на моем проекте c ++. кроме как на C # асинхронный метод.

Там произошла ошибка во время выполнения.

Это часть моего C # DLL-кода.

namespace NethereumDLLTest
{
[Guid("1C3D53B3-54C5-452B-9505-3F58ABEB35BA")]
public interface INethereumDLL
{
void Run();
}

[Guid("C22875F1-B74D-4C99-B446-ED705CE86D3B")]
public class Class1 : INethereumDLL
{

//there are some methods here.

public void Run()
{
Console.WriteLine("NethereumDLLTEST");

RunGeth();

Task task = new Task(ActionMethod);
task.Start();
Console.WriteLine("Main Logic");

GetAccountBalance().Wait();
Console.ReadLine();
}

static async Task GetAccountBalance()
{
for (int i = 10; i > 0; i--)
{
Thread.Sleep(1000);
}
var web3 = new Web3("http://localhost:8545");
var balance = await  web3.Eth.GetBalance.SendRequestAsync("0xb3a11b62596b8b6313dddc30e9b11607c8f9fb38");

Console.WriteLine($"Balance in Wei: {balance.Value}");
var etherAmount = Web3.Convert.FromWei(balance.Value);
Console.WriteLine($"Balance in Ether: {etherAmount}");
}
}
}

и вот коды клиента cpp.

#import "C:\Users\june\source\repos\NethereumDLLTest\NethereumDLLTest\bin\Debug\NethereumDLLTest.tlb"
using namespace std;
using namespace NethereumDLLTest;

int main()
{

CoInitialize(NULL);

{
INethereumDLLPtr ptr(__uuidof(Class1));
ptr->Run();
}
CoUninitialize();

}

Я мог бы найти все сообщения журнала выше функции «GetAccountBalance», но похоже, что после этого он не был выполнен.

Не можете использовать асинхронные функции C # в C ++? или я что то не так?

Захват изображения во время выполнения

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]