[Transaction(TransactionMode.Manual)]
public class TestCommand : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var handler = new TestEventHandler();
handler.Initialize();
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
Thread.Sleep(TimeSpan.FromSeconds(5));
handler.Raise();
});
TaskDialog.Show("dev", "handler created");
return Result.Succeeded;
}
}
public class TestEventHandler : IExternalEventHandler
{
private ExternalEvent externalEvent;
public void Initialize()
{
externalEvent = ExternalEvent.Create(this);
}
public void Raise() => externalEvent.Raise();
public void Execute(UIApplication app) => TaskDialog.Show("dev", "Hello");
public string GetName() => nameof(TestEventHandler);
}