How to implement queue as server request call list for background work

There will be a queue of server requests and the call will be sent to the server from the background thread. And every call is dequeue from this queue. How to implement it.
I have a survey class. I am using multiple groups in that class. group cantain questions and it's answers. I replied to each group that I am saving that group on sqlite and server. I am updating the sqlite file when the saved group response comes to the server. If I fill the 1st group and save it, it is uploading and at the same time I am accessing and saving the next group. But I don't upload the next group to the server until the 1st group responds because I am updating the 1st group's respons in the data field. I am doing this for all groups. Eg. 1st group I filled and called save, then the user got 2nd or next group access and 1st group uploading in background. The server is saving all the group in the same field in jeson format as well as in the sqlite file but in jeson format. The problem is that I have to work like a server request queue. And they also work in the background.
Heading
Class Survey
{
public int surveyid {get;set;}
public string surveyname {get;set;}
public string data {get;set;}
}
Class questionAns
{
public int questionid {get;set;}
public string question {get;set;}
public string ans {get;set;}
}
Survey data field contain questionAns class record in jeson format