일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- C#
- Prism
- 차트
- Chart
- c# 업비트
- maui
- 업비트
- WPF
- c# restapi 호출
- c# websocket
- XAML
- c# 라이브 차트
- c# 차트
- 북마크
- c# maui
- 업비트 API
- 즐겨찾기
- c# restapi
- upbit
- Upbit API
- c# 업비트 api키 목록
- 나만의 사이트모음집
- 업비트 c#
- 업비트 차트
- 라이브 차트
- c# api호출
Archives
- Today
- Total
하아찡
[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프로젝트 색변경 추가 (2) | 2023.12.06 |
[C#/WPF/수정] Upbit프로젝트 Balance (2) | 2023.12.05 |
[C#/WPF] Upbit 프로젝트 JWT (2) | 2023.12.03 |