59 lines
2.1 KiB
C#
59 lines
2.1 KiB
C#
|
|
using Cysharp.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace UVC.Event
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><EFBFBD> <20>̺<EFBFBD>Ʈ ó<><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
/// UniTask<73><6B> <20><>ȯ<EFBFBD>ϴ<EFBFBD> <20>̺<EFBFBD>Ʈ <20>ڵ鷯<DAB5><E9B7AF> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20>ְ<EFBFBD> <20><>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="TEventArgs"><3E>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD></typeparam>
|
|||
|
|
/// <param name="sender"><3E>̺<EFBFBD>Ʈ<EFBFBD><C6AE> <20><EFBFBD><DFBB><EFBFBD>Ų <20><>ü</param>
|
|||
|
|
/// <param name="e"><3E>̺<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>õ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <returns><3E><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD> UniTask</returns>
|
|||
|
|
/// <example>
|
|||
|
|
/// <code>
|
|||
|
|
/// // <20>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// public class NetworkManager
|
|||
|
|
/// {
|
|||
|
|
/// // UniTaskEventHandler Ÿ<><C5B8><EFBFBD><EFBFBD> <20>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// public event UniTaskEventHandler<DataReceivedEventArgs> OnDataReceived;
|
|||
|
|
///
|
|||
|
|
/// // <20>̺<EFBFBD>Ʈ <20><EFBFBD> <20>ҵ<DEBC>
|
|||
|
|
/// public async UniTask RaiseDataReceivedEvent(DataReceivedEventArgs args)
|
|||
|
|
/// {
|
|||
|
|
/// if (OnDataReceived != null)
|
|||
|
|
/// {
|
|||
|
|
/// // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϵ<EFBFBD> <20>ڵ鷯<DAB5><E9B7AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// foreach (var handler in OnDataReceived.GetInvocationList())
|
|||
|
|
/// {
|
|||
|
|
/// await ((UniTaskEventHandler<DataReceivedEventArgs>)handler).Invoke(this, args);
|
|||
|
|
/// }
|
|||
|
|
/// }
|
|||
|
|
/// }
|
|||
|
|
/// }
|
|||
|
|
///
|
|||
|
|
/// // <20>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// public class DataProcessor
|
|||
|
|
/// {
|
|||
|
|
/// public void Initialize(NetworkManager networkManager)
|
|||
|
|
/// {
|
|||
|
|
/// networkManager.OnDataReceived += HandleDataReceived;
|
|||
|
|
/// }
|
|||
|
|
///
|
|||
|
|
/// private async UniTask HandleDataReceived(object sender, DataReceivedEventArgs e)
|
|||
|
|
/// {
|
|||
|
|
/// // <20><EFBFBD> <20>̺<EFBFBD>Ʈ ó<><C3B3> <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// await ProcessDataAsync(e.Data);
|
|||
|
|
/// }
|
|||
|
|
///
|
|||
|
|
/// private async UniTask ProcessDataAsync(byte[] data)
|
|||
|
|
/// {
|
|||
|
|
/// await UniTask.Delay(100); // <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20>۾<EFBFBD>
|
|||
|
|
/// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD>
|
|||
|
|
/// }
|
|||
|
|
/// }
|
|||
|
|
/// </code>
|
|||
|
|
/// </example>
|
|||
|
|
public delegate UniTask UniTaskEventHandler<TEventArgs>(object sender, TEventArgs e);
|
|||
|
|
}
|