This repository has been archived on 2025-03-23. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
xerobrowser/packages/CefSharp.Common.113.3.50/src/CefSharp.Core.Runtime/Internals/CefTaskDelegate.h
2023-06-07 22:24:57 +12:00

42 lines
1.1 KiB
C++

// Copyright © 2022 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#pragma once
#include "Stdafx.h"
#include "include/cef_task.h"
#include "ReportUnhandledExceptions.h"
namespace CefSharp
{
namespace Internals
{
private class CefTaskDelegate : public CefTask
{
private:
gcroot<Action^> _action;
public:
CefTaskDelegate(Action^ action) :
_action(action)
{
};
virtual void Execute() override
{
try
{
_action->Invoke();
}
catch (Exception^ e)
{
auto msg = gcnew String(L"CefTaskDelegate caught an unexpected exception. This exception has been redirected onto the ThreadPool, add a try catch.");
ReportUnhandledExceptions::Report(msg, e);
}
};
IMPLEMENT_REFCOUNTINGM(CefTaskDelegate);
};
}
}