하아찡
[C#/WPF/수정] Upbit프로젝트 Balance 타이머 추가 본문
타 기기에서 주문이 들어왔을 경우 데이터를 처리하지 못하는 문제가 발생해서 일정시간(1초)간격으로 주문이 들어왔는지를 체크함.
BalanceViewModel.cs
/// <summary>
/// 오더가 들어왔는지 1초마다 체크해줌.
/// 다른 기기에서 오더를했을때 들어오지 않는 문제해결을 위해.
/// 23.12.08
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void EventOrerCheck(object sender,ElapsedEventArgs e)
{
Dictionary<string,double> data = new Dictionary<string,double>();
List<Structs.Accounts> list = Task.Run(() => FAccount.AccountsAsync()).Result;
Structs.Accounts mykrw = new Structs.Accounts();
bool _b = false;
foreach(var item in list)
{
if(item.Currency == "KRW")
{
mykrw = item;
list.Remove(item);
break;
}
}
foreach (var item in Accounts)
{
data.Add(item.Market,Convert.ToDouble(item.Locked));
}
try
{
foreach (var item in list)
{
double val = data[item.Market];
if (val != Convert.ToDouble(item.Locked))
{
_b = true;
break;
}
}
if(Convert.ToDouble(MyAccount.Locked) != Convert.ToDouble(mykrw.Locked))
_b = true;
if (_b)
{
//내 잔고 갱신 이거 처리안해주면 계속 이벤트보냄
DispatcherService.Invoke(() =>
{
_ea.GetEvent<MessageCoinOrderChangeEvent>().Publish();
RefreshAccount();
});
}
}
catch(Exception ex )
{
Debug.WriteLine($"BalaceView {ex.Message}");
}
}
해당 추가내용은 추후 Chart 매수 매도 라인을 출력 할 때 사용 계획입니다.
반응형
'C# > 코인프로그램 - 코드' 카테고리의 다른 글
[C#/WPF] Login 프로젝트 LoginMain (0) | 2023.12.12 |
---|---|
[C#/WPF/수정] Upbit 프로젝트 Chart 매수 매도 선 추가 (1) | 2023.12.08 |
[C#/WPF/수정] PublicColor프로젝트 색변경 추가 (1) | 2023.12.06 |
[C#/WPF/수정] Upbit프로젝트 Balance (1) | 2023.12.05 |
[C#/WPF] Upbit 프로젝트 JWT (2) | 2023.12.03 |